我正在尝试从控制台读取一个字符(在while循环中).但它不止一次地读过.
输入:
a
Run Code Online (Sandbox Code Playgroud)
输出:
char : a char : char : '
Run Code Online (Sandbox Code Playgroud)
码:
while(..)
{
char in;
scanf("%c",&in);
}
Run Code Online (Sandbox Code Playgroud)
我怎么才能读'a'?
P.P*_*.P. 30
scanf("%c",&in);
Run Code Online (Sandbox Code Playgroud)
留下在下一次迭代中消耗的换行符.
将其更改为:
scanf(" %c",&in); // Notice the whitespace in the format string
Run Code Online (Sandbox Code Playgroud)
告诉scanf忽略空格.
要么
scanf(" %c",&in);
getchar(); // To consume the newline
Run Code Online (Sandbox Code Playgroud)
要只读取一个char,请使用getchar:
int c = getchar();
if (c != EOF)
printf("%c\n", c);
Run Code Online (Sandbox Code Playgroud)