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


Anmelden zum Antworten