問題:
キーボードからファイル名を読み込んで、そのファイル中の行数(改行文字の個数)をカウントして画面に表示するプログラムを作成せよ。
質問:
このプログラムは正常に実行できました。
しかし、一つ疑問点があります。
printf("%d行です", count-2);の部分についてなのですが、なぜcount-2をcountにすると行数が2行多くカウントされるのか疑問に思いました。
その理由が知りたいです。
宜しくお願いします。
c
1#define _CRT_SECURE_NO_WARNINGS 2#include <stdio.h> 3 4int main(void) 5{ 6 int ch; 7 int count = 0; 8 FILE *fp; 9 char fname[FILENAME_MAX]; 10 11 printf("ファイル名:\n"); 12 scanf("%s", fname); 13 14 if ((fp = fopen(fname, "r")) == NULL) 15 printf("\aファイルをオープンできません\n"); 16 else { 17 while ((ch = fgetc(fp)) != EOF) { 18 if (ch == '\n') { 19 count++; 20 } 21 } 22 fclose(fp); 23 printf("%d行です", count-2); 24 /*疑問:なぜcount-2をcountにすると行数が2行多くカウントされるか*/ 25 } 26 return 0; 27}
回答3件
あなたの回答
tips
プレビュー