C在while循环中读取输入

标签 c while-loop int eof getchar

在c中,gets之后会做什么

int c; 
while ((c = getchar()) != EOF && c != '\n');

我看到你们很多人都告诉我它是 while 循环等等,为什么它这么复杂?为什么我们不能只使用我在下面给出的代码?

gets(name);
if(name == '\n'|| name == EOF) 
    gets(name);`

最佳答案

首先,gets 函数并不真正安全,您可能需要使用 fgets相反。

无论如何,您的代码用于清除缓冲区。当您读取用户输入时,用户输入的所有内容都将存储在 buffer 中。 ,然后程序将从其中读取。这就是为什么有时您需要清除缓冲区,这样您就不会读取其他您不想要的内容。

关于C在while循环中读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35383250/

相关文章:

c - 创建线程,然后所有线程在临界区之前退出

c - C 中的逗号、圆括号和大括号之间的关系是什么?

java - 如何从 while 添加变量来切换

python - 在 Python 中将字符串的小数部分转换为 Int

c++ - 将 c++ int 转换为 VARBINARY 并再次返回

c - 在不同的 gcc 优化级别上,手动优化代码的效果是否一致?

c - 如何在 C 中找到矩阵声明模式

c - While 循环卡住等待输入

c# - 在 while 语句中使用返回值赋值

c++ - winforms 应用程序 String^ 到 int