関数の戻り値をもう少しきちんとチェックしよう. 徹底したチェックは練習問題や課題で.
fp = fopen(filename, "w");
if ( fp == NULL ) {
printf("ファイル%sがオープンできません.終了します.\n", filename);
exit(1);
}
失敗したらプログラムを終わってしまうので,あまり親切ではない.
while ( fgets(buffer, BSIZE, fp) != NULL ) {
/* 中略 */
}
if ( buffer[0] == ';' ) {
printf("%d行目は注釈です.\n", nl);
continue;
}
if ( sscanf(buffer, "%f%f", &t, &x) != 2 ) {
printf("%d行目のデータが正しく読み込めませんでした.\n", nl);
continue;
}