Lesen eines einzelnen Zeichens in C

8

Ich versuche, einen Charakter von der Konsole zu lesen (innerhalb einer While-Schleife). Aber es liest sich mehr als einmal.

Eingabe:

%Vor%

Ausgabe:

%Vor%

Code:

%Vor%

Wie kann ich nur 'a' lesen?

    
g3d 19.01.2013, 23:18
quelle

4 Antworten

25
%Vor%

hinterlässt eine neue Zeile, die in der nächsten Iteration verbraucht wird.

Ändern Sie es in:

%Vor%

was scanf anweist, Whitespaces zu ignorieren.

ODER

%Vor%     
P.P. 19.01.2013, 23:20
quelle
5

Um nur ein Zeichen zu lesen, verwenden Sie stattdessen getchar :

%Vor%     
Douglas 19.01.2013 23:29
quelle
2

in scanf("%c",&in); Sie könnten nach %c ein Zeilenumbruchzeichen \n hinzufügen, um die zusätzlichen Zeichen zu absorbieren

%Vor%     
Manolis Ragkousis 20.01.2013 09:15
quelle
-1

Sie können so machen.

%Vor%

auf diese Weise erstellen Sie eine Zeichenfolge, aber eigentlich ist es ein Char-Array.

    
Cocoo Wang 20.01.2013 03:02
quelle

Tags und Links