ファイルから行を読み込み、行を印刷しようとしています。しかし、コードを実行すると、中央から始まる行が印刷され始めます。C - ファイルから行を読み取る
char temp[300];
if (input == NULL) {
printf("Can't open input file.\n");
exit(-1);
}
while (!feof(input)) {
fgets(temp, 300, input);
printf("%s \n", temp);
}
fclose(input);
途中で起動する理由は何ですか?
編集:だから、私は途中で何を意味するかの例は、私がこの
7,12 Angry Men,1957
95,2001: A Space Odyssey,1968
211,8 and a Half,1963
190,A Beautiful Mind,2001
68,A Clockwork Orange,1971
223,A Fistful of Dollars,1964
108,A Separation,2011
233,A Streetcar Named Desire,1951
40,Alien,1979
58,Aliens,1986
96,All About Eve,1950
224,All Quiet on the Western Front,1930
250,All the President's Men,1976
91,Amadeus,1984
69,Amelie,2001
54,American Beauty,1999
33,American History X,1998
189,Amores Perros,2000
のようなリストを持っていると私はprintfのを取得する場合、それはこれだけ
58,Aliens,1986
96,All About Eve,1950
224,All Quiet on the Western Front,1930
250,All the President's Men,1976
91,Amadeus,1984
69,Amelie,2001
54,American Beauty,1999
33,American History X,1998
189,Amores Perros,2000
EDIT2を示すことです:プログラムで\ nを取り除くためにプログラムを変更しました
while (fgets(temp, sizeof(temp), input) != NULL) {
printf("%s", temp);
}
これが問題を解決しました。 \ nがこの問題を引き起こした理由はありますか?
次の実験を行います。プログラムの出力をファイルにパイプします。このファイルを(良い!)プレーンテキストエディタで見てください。そこにすべてのラインはありますか? – usr2564301
メモ帳でファイルを開いて、自分の結果と比較しました。これは、リストの欠落した項目に気づいた方法です。 –
よくできました! (私が尋ねた理由は、「目に見えない」とは、画面上で上書きされたことを意味していた可能性があります*迷いのあるキャリッジリターンのためです)。 – usr2564301