関数の戻り値をもう少しきちんとチェックしよう. 徹底したチェックは練習問題や課題で.
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; }