cin problem

dr_pepper

Mitglied
hey,

ich wollte eine simple abfrage machen, ob der eingegebene wert mit einem array übereinstimmt.

joa, nur wenn ich nun "fux" eingebe, failt die if-schleife, und es wird "nio" ausgegeben.
obwohl man ja im debugger eindeutig sieht, dass mein einlese-array den wert "fux" hat.

was mache ich falsch? gibt es da etwas wichtiges zu beachten?

hier der screen vom source + debugger:
http://www.abload.de/img/cinprobtx38.png

dank euch =)
 
Hallo,

du vergleichst hier zwei Zeiger. Du willst aber eigentlich die Speicherinhalte vergleichen, auf die die Zeiger verweisen. Dazu kannst du z.B. die Funktion strcmp aus der Standardbibliothek verwenden. Oder du entscheidest dich, C und C++ nicht zu vermischen und setzt gleich std::string anstatt char * ein. Dann kannst du auch mit dem ==-Operator den Inhalt vergleichen.

Grüße, Matthias

PS: Halte dich doch bitte an die Netiquette (Groß-/Kleinschreibung).
 
Hallo,

du vergleichst hier zwei Zeiger. Du willst aber eigentlich die Speicherinhalte vergleichen, auf die die Zeiger verweisen. Dazu kannst du z.B. die Funktion strcmp aus der Standardbibliothek verwenden. Oder du entscheidest dich, C und C++ nicht zu vermischen und setzt gleich std::string anstatt char * ein. Dann kannst du auch mit dem ==-Operator den Inhalt vergleichen.

Grüße, Matthias

PS: Halte dich doch bitte an die Netiquette (Groß-/Kleinschreibung).

Hallo,

Dank dir. Nun funktioniert es.!
 
Hm solange du nicht so wirklich über die einzellheiten bescheid weißt, würde ich nicht C und C++ mixen. Einfach beim Stream-Konzept bleiben und std::cout nutzen ;)

C++:
#include <iostream>

int main()
{
    const char* keyword = "fux";
    std::cout << "Eingabe: ";
    std::string input;
    std::getline(std::cin, input);
    std::cout << (input == keyword) << std::endl;
    
    std::cin.ignore();
}
 
Zurück