cin.Holen Sie sich in eine while-Schleife

Ich versuche, eine Eingabe von Benutzer und geben Ausgang, bis er/Sie Pressen 'n'. Es scheint nicht zu funktionieren. Ist das problem in scanf oder cin.bekommen? Wenn ich drücken Sie y, es dauert nur "tekrar" als Eingabe, so gibt "y" als Ausgang und geht in eine Schleife. Auch nicht aufhören, wenn ich geben Sie n als tekrar Eingang.

char cevap[300]="";
char tekrar='y';
while (tekrar!='n')
{
  cin.get(cevap,300);
  cout<<cevap<<endl;
  cout<<"Again? (y/n)";
  scanf("%c",&tekrar);
}

Ausgabe:

Hello
Again? (y/n)
y 
Again? (y/n)
y 
Again? (y/n)
n
Again? (y/n)
n 
...  
  • wenn Sie einen debugger anfügen, Sie sollten in der Lage sein, um den Inhalt der cevap und tekrar. Oder Sie können fügen Sie einfach eine cout-Anweisung, so können Sie ganz einfach die Werte angezeigt, während das Programm läuft. Das wird Ihnen sagen, wenn cevap oder tekrar ist nicht korrekt aktualisiert.
  • mixing << und scanf kann auch Probleme verursachen
InformationsquelleAutor Caner Öncü | 2011-02-08
Schreibe einen Kommentar