一行余分に行数が出てしまいます。原因を教えていただけないでしょうか。
よろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fp; /* ファイル読み込み用ポインタ変数 */
char input[256]; /* ファイル内容出力用文字変数 */
int line = 0; /* 行数カウント用変数 */
~略(エラー処理)~
/* ファイルオープン */
printf("***** File Name:%s *****\n", argv[1]);
printf("%04d:", line+1);
while (fgets(input, sizeof(input), fp) != NULL) {
printf("%s", input);
if(input[strlen(input) - 1] == '\n') {
line++;
printf("%04d:", line+1);
memset(input, '\0', sizeof(input));
}
}
/* ファイルクローズ */
fclose(fp);
return(0);
}
./test.out testfile.txt
0001:aaaaa
0002:bbbbb
0003:
コンパイラ gcc