Forum: Vad är fel ? c++

Forum huvudsida -> Programmering -> Vad är fel ? c++

Sidor: 1

Till botten

guno 13:22 - 13:e Oktober 2006 | Post #1
Medlem
Inlägg: 6


Skicka PM
Tjena, jag är somsagt nybörjare och har försökt kodat ett eget litet program men den säger att;
if (natt == 'inget')
Det är fel där, vad är fel ? hare!





#include <iostream>

using std::cout;
using std::cin;

int main()


{
char natt;

cout << "Tja, vad händer: ";
cin >> natt;

if (natt == 'inget')
{
cout << "samma här";
cout << "men det är ju skola snart";
}
else
{
int tid;
cout << "Ok, nar borjar skolan?";
cin >> tid;
cout << "ok, då ses vi kl " << tid << " då!;
}
cin.get();
cin.get();
return 0;
}

[SOURCE=cpp][/SOURCE]

-------------------------
Ingen signatur!



Independence 14:20 - 13:e Oktober 2006 | Post #2
Administratör
Inlägg: 1800


Skicka PM
char lagrar endast ett tecken, du får skapa en sk. array av char-element för att lagra ord. Alternativt kan du använda strängar vilket förenklar en hel del. Se C++-guiden.

-------------------------

Vi är riddarna som säger fiskbulle!





Lajnold 14:21 - 13:e Oktober 2006 | Post #3
Medlem
Inlägg: 65


Skicka PM
En char kan inte innehålla mer än ett tecken. I din jämförelse så använder du vanliga apostrofer, vilka är för char, och alltså bara ett tecken. Istället så måste du använda citationstecken (alltså "inget"). Du kan dock ändå inte jämföra en char (natt) med en sträng (eller snarare 'const char *'). Skapa istället natt som en array av chars, och jämför sedan strängarna med strcpy.
char natt[32];
// Läs in strängen.

if(!strcpy(natt, "inget"))
{
    // Användaren skrev in "inget".
}


Men lättare är att använda string-klassen.
#include <string>

string natt;
// Läs in strängen.

if(natt == "inget"))
{
    // Användaren skrev in "inget".
}


-------------------------
Ingen signatur!



Independence 14:23 - 13:e Oktober 2006 | Post #4
Administratör
Inlägg: 1800


Skicka PM
Hehe, där kom ett lite mer utförligt svar också Smiley

-------------------------

Vi är riddarna som säger fiskbulle!





guno 14:24 - 13:e Oktober 2006 | Post #5
Medlem
Inlägg: 6


Skicka PM
Nu blir ja snurrig Smiley kan nån skriva klart skripet så att det funkar ?
btw, håller på med "nybörjar guiden" ville bara testa mina kunskaper Smiley

-------------------------
Ingen signatur!



Lajnold 14:31 - 13:e Oktober 2006 | Post #6
Medlem
Inlägg: 65


Skicka PM
#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::string;

int main()
{
    string natt;

    cout << "Tja, vad händer: ";
    cin >> natt;

    if (natt == 'inget')
    {
        cout << "samma här";
        cout << "men det är ju skola snart";
    }
    else
    {
        int tid;
        cout << "Ok, nar borjar skolan?";
        cin >> tid;
        cout << "ok, då ses vi kl " << tid << " då!"; // Här hade du missat ett citationstecken.
    }
    cin.ignore(cin.rdbuf()->in_avail());
    cin.get();
    return 0;
}


Något sådant.

(Dock är det inte ett "skript")

-------------------------
Ingen signatur!

Senast redigerad 14:33 - 13:e Oktober 2006


guno 14:32 - 13:e Oktober 2006 | Post #7
Medlem
Inlägg: 6


Skicka PM
TACK !

-------------------------
Ingen signatur!



guno 14:59 - 13:e Oktober 2006 | Post #8
Medlem
Inlägg: 6


Skicka PM
TACK !

-------------------------
Ingen signatur!



Lajnold 22:26 - 17:e Oktober 2006 | Post #9
Medlem
Inlägg: 65


Skicka PM
Nu ser jag att jag har skrivit fel. Det ska naturligtvis vara strcmp (string compare), inte strcpy (string copy), i mitt första inlägg i den här tråden.

-------------------------
Ingen signatur!

Senast redigerad 22:27 - 17:e Oktober 2006


Sidor: 1

Forum huvudsida -> Programmering -> Vad är fel ? c++
Atom feed

Du får inte posta i den här tråden | Till toppen