関数
fgets
ファイルから1行読み込む
標準入力から1行取得したければ、
#include <stdio.h>
char buf[256];
fgets(buf,sizeof(buf),stdin);
とする。指定のファイルを読み込み、先頭に行番号を付けるには
#include <stdio.h>
char buf[256];
FILE *fp;
fp = fopen("sample.txt","r");
if ( fp == NULL ){
ファイルオープンエラー
}
while (1){
if ( fgets(buf,sizeof(buf),stdin) == 0 ){
break; // 全部読み込んだ
}
printf("%s",buf);
}
fclose(fp);
バッファの最後には改行コードが付いている。ただし、この例では、sample.txt に 255文字を越える行があればうまく動作しないことに注意。
gets を使ってはいけない。gets(buf) という呼び出し形式のため、領域の長さを指定できないため、長い行を読み込もうとするとバッファオーバーランが発生するからである。かわりに、必ず fgets(buf,sizeof(buf),stdin) としよう。