<分区>
在 C 中:
我正在尝试使用 scanf
从用户那里获取字符,当我运行它时,程序不会等待用户输入任何内容...
这是代码:
char ch;
printf("Enter one char");
scanf("%c", &ch);
printf("%c\n",ch);
为什么不工作?
<分区>
在 C 中:
我正在尝试使用 scanf
从用户那里获取字符,当我运行它时,程序不会等待用户输入任何内容...
这是代码:
char ch;
printf("Enter one char");
scanf("%c", &ch);
printf("%c\n",ch);
为什么不工作?
最佳答案
%c
转换说明符不会自动跳过任何前导空格,因此如果输入流中有杂散的换行符(例如,来自上一个条目),scanf
调用将立即使用它。
解决该问题的一种方法是在格式字符串中的转换说明符之前放置一个空格:
scanf(" %c", &c);
格式字符串中的空白告诉 scanf
跳过前导空白,第一个非空白字符将使用 %c
转换说明符读取。
关于c - 如何在 C 中对单个字符执行 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542055/