1

我知道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**
        }
    }
}
4

2 回答 2

2

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

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

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

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

于 2011-09-13T15:37:21.707 回答
0
while(getchar()!='\n');

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

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

于 2011-09-13T15:33:36.203 回答