2017-01-27 1 views
0

Ich kann nicht herausfinden, was damit nicht stimmt. Es kompiliert gut, aber egal was ich hineinlege, sei es Ja oder Nein, es überspringt die "Let's Begin" -Linie und geht direkt ans Ende.Benutzereingabe: Ja oder Nein in C

Muss der Scan verschoben werden, oder habe ich ihn einfach vermasselt?

+0

Die '==' nicht Arrays vergleichen. Wenn es für Arrays verwendet wird, vergleicht es die Adressen des ersten Elements des Arrays. – alk

Antwort

1

ändern

if (response == "yes"){ 

zu

if(!strcmp(response, "yes") { 

Für das "Nein" überprüfen, schreiben else if(!strcmp(response, "no") { wenn Sie explizit für "Nein" prüfen möchten.

+1

Und das OP sollte das '(response ==" no ")' im else entfernen. – lurker

+0

Danke für den Fang, ich habe meine Antwort aktualisiert. –

+0

Hey, das hat es behoben! Danke vielmals; Ich hatte keine Ahnung, dass ich == für Chars nicht verwenden konnte. – hego64

0

Sie vergleichen Array von Zeichen. Also == wird nicht funktionieren. Entweder implementiert gleich Funktion für 2 Array von Zeichen oder verwenden Sie String-Klasse.

0
if (strcmp(response, "yes")==0){ 
    printf("Let's begin!"); 
} 
else { 
    printf("See you later then!"); 
} 

Sie können zwei Char-Arrays nicht vergleichen. 0 wird von strcmp zurückgegeben, wenn die Zeichenfolgen identisch sind. Achten Sie darauf, einzuschließen.

0

in C-Programmierung Sie nicht direkt Array von Zeichen anstelle durch Verwendung Zuweisungsoperator vergleichen können Sie strcmp können Sie überprüfen, sowohl die Zeichenfolge gleich sind oder nicht