在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/