ファイルを読み込んでから、ファイルを文字で出力しようとしています。表示する行数となる数値をユーザーに入力してもらいたい。
次の行がないと、私のコードはテキスト ファイル全体を表示します。if (y == lineCount) ブレーク;
この行は、カウントされた改行文字の数がユーザーが入力した数と等しい場合にループを中断することになっています。
newLine 文字の数を数えて表示することはできますが、その特定の数の newLines に達した後にループを中断しようとすると、コードは 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 );
}