Forum
Tipps
News
Menu-Icon

C: SCHNELL!! - scanf() wird übersprungen!?!

also ich hab ne funktion, in der folgendes aufgerufen wird:

char var;
char var2;

printf("ein Text");
scanf("%c",&var);
printf("noch ein Text");
scanf("%c",%var2);
...

bei der ausführung in der shell (Linux) wird "ein Text" ausgegeben, dann erwartet er eine Eingabe. danach wird "noch ein Text" ausgegeben und dann hält er bei scanf("%c",%var2); nicht mehr an. wieso???
habs auch mit getc() und getchar() versucht - erfolglos mit dem gleichen ergebnis.

BITTE UM SCHNELLE HILFE!!!!

mfg


Antworten zu C: SCHNELL!! - scanf() wird übersprungen!?!:

Wenn das 1. scanf kommt, wird eine ganze Zeile eingelesen, inklusive \n.
scanf liefert allerdings nur das Zeichen vor \n ... und das 2. scanf kriegt dann das \n.

Lösung: beim scanf das \n mit angeben, also scanf( "%c\n", &var ) glaub ich ..

Bleibt noch die Frage: Willst Du wirklich einen TEXT eingeben, oder tatsächlich nur ein ZEICHEN?

Weil es klingt eher so als ob Du einen Texte einegeben möchtest, und dann ist das was Du da machst sowieso falsch.

Um einen ganzen String einzulesen machst Du folgendes:


char string1[100];     // String mit 100 Zeichen
char string2[100];     // String mit 100 Zeichen

printf("Bitte einen Text eingeben:");
scanf("%s", string1);
printf("Bitte noch einen Text eingeben:");
scanf("%s", string2);

printf("%s", string1);
printf("%s", string2);


So gibt das dann auch keinen Ärger mit dem "überspringen" des scanf.

Danke für die Hilfe, hab das Problem schon gelöst.


« Delphi/KylixImages@jpg »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Linux
Linux bezeichnet ein kostenloses Betriebssystem, das als Open Source verfügbar ist. Die erste Version entstand 1991 und wurde von dem Finnen Linus Torvalds aus dem S...

Hypertext
Hypertext ( zu Deutsch: Übertext) ein ein von dem Informatiker Theodore L. Nelson in den sechziger Jahren geprägter Begriff für Text, der dreidimensional g...

Textur
Unter einer Textur versteht man eine Oberflächenstrukur, die ein bestimmtes Material simuliert, wie Holz, Tapete oder Metall. Bei der 3D-Computeranimation bezeichnet...