Запутался "while (getchar ()! = '\ N')" - PullRequest
1 голос
/ 13 сентября 2011

Я знал, что getchar() - это просто функция, которая получает первый символ строки, введенной пользователем, затем следующую и т. Д. И если мы набрали getchar() в строке, в конце кода это длядайте программе подождать, пока пользователь наберет что-нибудь, и не закрывают консоль при отображении информации.

почему мы используем эту строку кода?

while (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 ]

2 голосов
/ 13 сентября 2011

Похоже, что этот код разбит на страницы.

Он читает символ из потока и использует putchar для вывода его на stdout.Затем, если этот символ был символом новой строки, он увеличивает количество строк.Если это число достигло некоторой определенной константы STOP_LINE, то счетчик сбрасывается и

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

ждет, пока пользователь нажмет клавишу Return.Затем цикл продолжается.

0 голосов
/ 13 сентября 2011
while(getchar()!='\n');

Считывает все символы строки, пока не будет найден конец строки.

Однако для этого были бы более эффективные способы (например, использование буферизованного потока или чтение больших кусков, если это возможно)

...