Цикл while повторяется, но не знаю почему

Я пишу программу, которая читает первые 20 строк текстового файла. Когда первые 20 строк прочитаны, пользователю предоставляется возможность продолжить чтение следующих 20 строк или выйти из программы. Что происходит со мной, так это то, что он печатает 20 строк, появляется подсказка пользователя, а затем автоматически печатает следующие 20 строк, не дожидаясь ввода пользователя. После этого он напечатает приглашение пользователя и дождется ввода. Я знаю, что это простая проблема, но я ее не вижу! Я немного изменил код в соответствии с ответами на мой вопрос:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;
char fname[20];
char c, input;
int line;
line = 0;

    printf("Please enter the name of the file you wish to view\n");
    scanf("%s", fname);

    fp = fopen(fname, "r");

    if (fp == NULL)
    {
    printf("The file did not open correctly");
    exit(0);
    }

    else
    {
    printf("The file opened correctly\n");
    }

        while(c != EOF && input != 'q')
        {   
            c = getc(fp);
            printf("%c", c);

                if  (c == '\n')
                {
                line++;

                    while (line==20)
                    {
                    line = 0;
                    printf("Press return to view the next 20 lines or press q to quit:");
                    scanf("%c", &input);

                        if (input == 'q')
                        {               
                            return 0;
                        }

                        else if (input == '\n')
                        {
                            line++;
                        }
                    }
                }
        }
return 0;
}
0
задан adohertyd 6 December 2011 в 11:59
поделиться