Char-Variablen
-
Hallo,
ich habe folgende Frage:
kann ich einer Char-Variablen nicht mehrfach einen neuen Wert zuweisen?Im ersten Durchlauf funktioniert folgendes Programm korrekt, aber schon im zweiten wird die scanf-Funktion übergangen....
Wenn ich dieses Programm mit int-Variablen mache, klappt's...#include <stdio.h> int main() { char test='+'; while(1) { scanf("%c",&test); if(test!='+' && test!='-' && test!='*' && test!='/') { break; } else { printf("\nweiter\n"); } } return 0; }
-
Schätze, dass du die Eingabe von einem Terminal geholt hast. Dort ist sie zeilenweise gepuffert, d.h. nach dem Eingabezeichen (oder nach den Eingabezeichen) kommt beim zweiten (n-ten) Durchlauf ein Newline-Zeichen, und darauf trifft die If-Bedingung zu, so dass das break im then-Teil ausgeführt wird. Dagegen hilft, auf das Newline-Zeichen zu achten.
-
hmm...allerdings funktioniert der gleiche code, wenn ich das prog auf eine int-variable umschreibe;
da müsste es dieses newline-problem ja dann auch geben...
-
celer schrieb:
hmm...allerdings funktioniert der gleiche code, wenn ich das prog auf eine int-variable umschreibe;
da müsste es dieses newline-problem ja dann auch geben...
Klar, ein Newline ist ja zwar ein gültiges Zeichen, aber keine gültige Zahl.
-
schon mal vielen dank...könntest du mir vll einen tipp geben, was ich an meinem code verändern muss?
wie wird newline hier denn an die variable zugewiesen?
-
Wie man korrekt zeichenweise (auch mehrfach) liest, steht z.B. hier
http://www.c-plusplus.net/forum/viewtopic-var-t-is-275704-and-highlight-is-.html