[C++] "if" Problem

MisterMichi

Stammgast
Hallo zusammen
Ich schreibe gerade ein Quizprogramm. In diesem Programm wird eine Eingabe in eine String-Variable eingefügt. Danach wird die Eingabe in einer if Verweigung überprüft. Das ganze sieht so aus:

Code:
cout << "1. Frage: Wie heisst der aktuelle Präsident von Amerika?" << endl;
    cout << "Ihre Eingabe: ";
    cin >> eingabe;
    if(eingabe == "Barack Obama")
    {
        cout << eingabe;
        cin.get();
        cout << "Richtig! Sie erhalten 1 Punkt!" << endl;
        punkte ++;
    }
    else
    {
        cout << "Diese Antwort ist leider falsch. Sie erhalten keinen Punkt.";

    }

Nun nimmt es aber nur die Eingabe bis zum Leerschlag. Wie kann ich den Leerschlag und die danach folgende Eingabe ebenfalls in die Variable übernehmen?
 

LMS

Stammgast
Versuchs mal so:

Code:
cout << "1. Frage: Wie heisst der aktuelle Präsident von Amerika?" << endl;
    cout << "Ihre Eingabe: ";
    [color=red]cin.getline(eingabe, 256);[/color]

    if(eingabe == "Barack Obama")
    {
        cout << eingabe;
        cin.get();
        cout << "Richtig! Sie erhalten 1 Punkt!" << endl;
        punkte ++;
    }
    else
    {
        cout << "Diese Antwort ist leider falsch. Sie erhalten keinen Punkt.";

    }

s. auch http://www.cplusplus.com/reference/iostream/istream/getline/


Gruss
LMS
 
Zuletzt bearbeitet:

deluxe

Stammgast
Auch C Funktion möglich

Oder du verwendest die Funktion: char *gets(char *buffer) von der stdio.h halt nach ANSI C und nicht c++.

greez
saemideluxe

stehe halt immer noch auf C :-D
 

LMS

Stammgast
Hmm gibts da keine einfachere Lösung?

Doch sicher, du könntest auch den IO-Inputstream in eine Datei umleiten, diese anschliessend einlesen, den Text in einzelne Tokens aufteilen, diese dann parsen und die gefundenen Literale anschliessend wieder konkatenieren.

Verstehe nicht ganz, was an der Zeile
cin.getline(eingabe, 256);
oder an den Vorschlägen von romansvillage

kompliziert ist. Oder hats nicht funktioniert? Habs nicht ausprobiert. Ist vielleicht für andere auch interessant zu wissen.
 
Oben