Problem beim Einlesen eines einzelnen Zeichens



  • Hallo zusammen,

    ich habe folgendes Problem, leider bin ich im Netz nicht auf die Lösung gekommen:

    Ich möchte in einem char-Feld einzelne Zeichen einlesen, mein Code sieht so aus:

    char op[ELEMENT];
    
    for (i=0; i<ELEMENT; i++)
    {
    	scanf("%c", &op[i]);
    }
    

    So wie ich das verstehe, ist das Problem, dass nach dem Zeichen auch das '\n' mitgeschrieben wird. Ich wüsste jetzt aber nicht wie ich das beheben könnte.
    😕

    Wäre für Vorschläge sehr dankbar.



  • nur zum beheben?

    char op[ELEMENT];
    char buf[3];
    
    for (i=0; i<ELEMENT; i++)
    {
        scanf("%c", &buf);
        op[i] = buf[0];
    }
    

    Das geht aber sicherlich auch schöner... z.B. mit getchar();



  • Nimm fgets zum Einlesen von mehreren Zeichen mit EINEM abschließendem <Enter>.
    Wenn du wirklich einzelne Zeichen (jeweils mit 1x <Enter> abgeschlossen) einlesen willst, benötigst du Zeit für die Einarbeitung in die Unterschiede von scanf/getchar/fgets. Kannst auch mal schauen unter: http://www.c-plusplus.net/forum/viewtopic-var-t-is-272820-and-highlight-is-.html


Anmelden zum Antworten