为啥 scanf (在 C 中)似乎只在第二次输入后才做出反应? [复制]

Posted

技术标签:

【中文标题】为啥 scanf (在 C 中)似乎只在第二次输入后才做出反应? [复制]【英文标题】:Why does scanf ( in C) seem to react only after a second input? [duplicate]为什么 scanf (在 C 中)似乎只在第二次输入后才做出反应? [复制] 【发布时间】:2022-01-14 05:42:46 【问题描述】:

有人可以看看并告知为什么程序在scanf获取char(&)后不前进,而是等待输入另一个char?

char user_char, hist_axis;
int axis_char_ok = 0,grade, max_count=0,j,k,m=1,grades[9] = 0;

printf(" Please enter a character:  \n");
scanf(" %c ", &user_char);

【问题讨论】:

你为什么不在scanf中只使用"%c" 【参考方案1】:

%c 后面的空格会占用尽可能多的空白,因此它不会停止,直到您输入不是空格或换行符(或结尾)的内容-of-file)。

如果您将" %c " 更改为" %c",那么问题应该会消失。

【讨论】:

非常感谢!你成就了我的一周,而不仅仅是我的一天!这解决了问题。

以上是关于为啥 scanf (在 C 中)似乎只在第二次输入后才做出反应? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥按钮只有在第二次点击后才起作用? (反应)

第二次点击后出现文本字段的键盘(不时)

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥 vue 在第一次编译时无法识别 TS 语法,但在第二次编译时可以正常工作?

为啥 D3 对输入的关注只在第一次起作用?