2017-01-19 6 views
0

In meinem Code gibt es eine gets() Anweisung innerhalb einer Schleife, die bei jeder Iteration nach Eingabe fragen soll. Es fragt jedoch nur einmal nach einer Eingabe und fragt nicht erneut, wenn die Schleife erneut abläuft, als ob eine Eingabe bereits erfolgt wäre. Das ist wirklich nervig, da scheint nichts falsch zu sein.gets() Anweisung in Schleife fragt nach Eingabe nur einmal

while(5) { 
    cout<<"Is your number "<<x<<" ?\n[yes/no]\n"; 
    gets(ans); 
    if (strcmpi(ans,"yes")==0) 
     break; 
} 
+4

Beachten Sie, dass 'gets' aus C++ 14 und höher entfernt wurde. Du solltest auf 'getline' umschalten, wenn du mit Strings arbeitest oder einfach '' '' '' ' – NathanOliver

+0

@ sleekmaster292 Wie wird das, was vom C Standard mit C++ verbunden ist, überhaupt nicht unterstützt? –

+0

[mcve] bitte. Verwenden Sie nicht 'strcmpi'. '==' funktioniert gut für Strings – AndyG

Antwort

0

get() ist nicht in C++ [14] und höheren Versionen. Sie verwenden jetzt stattdessen getline(). std::cin funktioniert auch, aber hängt davon ab, was Sie tun oder Ihre persönlichen Vorlieben.