2016-06-04 12 views
0

Ich brauche eine Schleife, die drei Zeichenfolgen als Eingabe von einem Benutzer erhält und zu beenden, wenn nichts eingegeben wird. Mein CodeÜberprüfen, ob Benutzereingabe eine leere C++

while(true){ 
cout << "Enter string1 string2 string3: "; 
getline(cin,s1, ' '); 
if(s1.empty()) 
    break; 
getline(cin, s2, ' '); 
getline(cin, s3); 
} 

Wenn wir geben nichts, getline wartet, bis ich Eingabe zumindest einen Raum. Wie kann man aufhören, wenn nichts eingegeben wird?

+2

'if (s1.empy())' -> 'if (s1.empty())' –

+1

Zeigen Sie uns ein [MCVE] und erklären, wie es geht bitte nicht. –

Antwort

2

Mein Vorschlag:

  1. eine Textzeile lesen.
  2. Verwenden Sie die Linie, um eine istringstream zu konstruieren. Verwenden Sie die istringstream, um die Variablen zu extrahieren.

Hier ist, was ich denke:

std::string line; 
while (getline(std::cin, line)) 
{ 
    std::istringstream str(line); 
    if (!(str >> s1 >> s2 >> s3)) 
    { 
     break; 
    } 
} 
+0

Danke, hatte die gleiche Idee, wusste nicht, wie man es richtig umsetzt. – ReeSSult