必须采用大小为 5 的输入字符串。还必须检查某些不相关意义上的有效性。如果输入无效,会提示用户重新输入。
使用
scanf("%4s", input);
但是,如果用户输入假设的 8 个字符的字符串,则 scanf 仅扫描仍在缓冲区中的最后 4 个字符,然后再询问实际的用户输入。
我尝试创建一个缓冲区变量来存储输入,然后再将其传递给目标变量。
简单:始终从用户那里获取整行文本(使用
fgets()
)。
如果用户没有给你一整行文本,那么输入无效;要么抱怨并中止,要么丢弃输入,直到找到换行符。
这是因为一个简单的原则:
⟶ 用户将始终在每次要求的输入结束时按Enter ⟵
一旦获得一整行文本,然后尝试将其转换为
int
或其他。