困惑于“while(getchar()!='\ n')”

时间:2011-09-13 15:30:50

标签: c while-loop getchar putchar

我知道getchar()只是一个函数获取用户输入的行的第一个字符,然后是下一个等等 如果我们在一行中输入getchar(),那么在代码完成时,让程序等待用户键入任何内容,并在显示信息时不关闭控制台。

为什么我们使用这行代码?

而(的getchar()= '\ n'!);

我知道它会读取该行的所有字符,直到找到行尾,然后循环断开..正确。?但是,为什么这有用呢?如果我们不编写这行代码怎么办?

while((ch=fgetc(stream))!=EOF)
{
    putchar(ch);
    cha++;
    if(ch=='\n')
    {
        lines++;
        printf("Line %i is detected\n\n",lines);
        if(lines==NEW_LINE)
        {
        lines=0;
        while (getchar!='\n'); **//Here is my question**
        }
    }
}

2 个答案:

答案 0 :(得分:2)

看起来这段代码是分页输出。

它一次从流中读取一个字符,并使用putchar将其输出到stdout。然后,如果该字符是换行符,则会增加行数。如果该计数达到某个已定义的常量STOP_LINE,则重置计数并

while(getchar()!='\n');

等待用户按Return键。然后循环继续。

答案 1 :(得分:0)

while(getchar()!='\n');

读取行的所有字符,直到找到行尾。

然而,有更有效的方法可以做到这一点(比如使用缓冲流,或者尽可能读取更大的块)