Чтение файлов и подсчет символов

Я пытаюсь прочитать файл, а затем вывести файл по символам. Я хочу, чтобы пользователь ввел число, которое будет отображать количество строк.

Без следующей строки мой код будет отображать весь текстовый файл. если (y == lineCount) перерыв;

Предполагается, что эта строка прерывает цикл, когда количество подсчитанных символов новой строки равно числу, введенному пользователем.

Я могу подсчитать количество символов новой строки и отобразить это, но когда я пытаюсь разорвать цикл после достижения определенного количества новых строк, код прерывается после 1 символа

#include <stdio.h>

int main ( int argc, char *argv[] )
{
    FILE *file = fopen( argv[1], "r" );
    int lineCount, x, y;

    printf("enter a number of lines of lines to be displayed\n");
    scanf("&d", &y);


    while  ( ( x = fgetc( file )) != EOF )  //read characters
    {
        printf( "%c", x );       //print character

        if (x == '\n')           //check for newline character
            lineCount++;    

        if (y == lineCount)      //check for newLine character
            break;               //??? y = lineCount after 1 character???
    }

    printf( "%d lines in the text file\n", lineCount );  //testing the newline characters was being read

   fclose( file );
}

person blitzeus    schedule 16.08.2012    source источник


Ответы (2)


Вам нужен scanf("%d", &y) вместо scanf("&d", &y).

person David    schedule 16.08.2012

Вы хотите scanf("%d", &y) вместо scanf("&d", &y).

Также вы никогда не инициализируете lineCount, поэтому его начальное значение не обязательно равно 0.

person cmh    schedule 16.08.2012