0

使用 Ch 标准解释器时,getchar()只运行每隔一行。

C:/> char a = getchar();
C:/> char b = getchar();
b
C:/> char c = getchar();
C:/> char d = getchar();
d

改用时我有同样的问题scanf("%c", &a);在 Vim 中,该语句被跳过。

printf("\nType of Something\nA for SomethingA\nB for SomethingB "
        "\nC for SomethingC\n\nSelect (A,B,C) > ");
char letter = getchar(); // This statement gets skipped
return 0;
4

1 回答 1

2

在键盘上键入“A”时,首先按“A”,然后按“ENTER”,对吗?所以getchar()orscanf("%c", ....)读取两个字符:“A”,以及来自“ENTER”键的换行符。

如果您在循环中使用代码,或者只是重复使用,第一个 getchar() 将从前一个输入中读取换行符。

于 2012-03-04T06:15:37.010 回答