C语言中的while((getchar())!=\n) continue中的while 可以变成if吗
while是循环,if是判断
能不能代替不能一概而论,而要看你缓冲区里到底有多少废字符需要读掉
如果你前面的代码能保证缓冲区里只有一个字符需要读掉,那循环就完全没有必要
用循环就是保证不管前面输入了多少乱码,都能读走
说实话,要实现让用户按一次Enter就继续的效果,不用循环也可以,直接调用getchar就行了,要搞清楚,getchar只有在用户按下Enter之后才会开始读取字符,而不是用户一输入就读取。
而使用while就表示在用户按下Enter之后,getchar开始不断读取字符,知道读到换行符为止。
而使用if的话,其实效果一样,在用户按下Enter之后,读取一个字符,这个时候使用if (getchar() != '\n')
的空语句其实也啥都不干。
所以,要让用户按下Enter键,while和if都可以,但是直接调用getchar就行了,你可以自己试一试。
#include <stdio.h>
int main()
{
getchar(); // 等待用户按下Enter
printf("End");
return 0;
}
while表示循环,这里如果不是\n就可以一直读取字符
而if只是判断,只能读取一次