char problem
-
hallo zusammen,
also ich habe das folgende problem:char eingabe='z'; while (eingabe!='x'){ printf("Auswahl\n"); printf("a-blabla\n"); printf("b-blabla\n"); printf("x-stop\n"); scanf_s(" %c", &eingabe); if(eingabe == 'a'){ printf("a\n"); }else if(eingabe=='b'){ printf("b\n"); } }
weder wird was ausgegeben (bei eingabe a, oder b) noch wird die schleife verlassen bei eingabe x. Ich hab statt char, mit integers probiert und alles hat geklappt. Übrigens das ist nicht das Programm, das ich schreiben muss, sondern nur ein Beispiel des Problemes, das ich habe..
Vielen Dank im Voraus
-
scanf**_s** erwartet noch eine Längenangabe zu jeder Variablen(Adresse).
Nimm einfach scanf.
-
es liegt leider nicht daran. es geht wieder nicht:/
-
Bei mir geht es mit scanf.
Welchen Compiler, welches Betriebssystem nutzt du?
-
für windows vs express und linux eclipse. bei dir geht das? komisch..
-
Ja, bei mir geht das.
gcc (Code::Blocks) als Konsolenprogramm unter Windows 7.Komisch ist das nicht, denn das C ist in Ordnung.
-
switch(eingabe){ case 'a': printf("baa"); break; case 'b': printf("bebe"); break; default: printf("ungueltig"); break; }
und jetzt wird immer ungueltig ausgegeben. ich verstehe das nicht..
-
Hast du ein anderes Encoding, UTF-16 oder dgl. eingestellt?
Schon mal mit einem neuen Projekt angefangen?HAst du auch die Warnungen vom Compiler angestellt (alle) und diese auch beachtet?
-
ich hab gar nichts gemacht nein. aber was auch interessant ist, ist dass bei irgendeiner eingabe wird:
printf("Auswahl\n"); printf("a-blabla\n"); printf("b-blabla\n"); printf("x-stop\n"); scanf_s(" %c", &eingabe);
2 mal wiederholt und dann wieder...hast du eine idee vllt ?
-
Nochmal: scanf_s (mit _s hinten dran) benötigt noch einen zusätzlichen Parameter.
Wenn du nicht weißt was er bedeutet, nimm scanf (ohne _s).
-
genau das selbe..pf..
-
Dann werte doch mal den Rückgabewert von scanf aus und lass dir anzeigen, welcher Wert in eingabe steht.
int ret; ... ret = scanf(....); printf("Rueckgabe = %d| eingabe = %d\n", ret, eingabe);