#include <stdio.h> #include <stdlib.h> int main(void){ FILE *fp; double x, y; int num=0; if( (fp = fopen("data.txt", "r")) == NULL ){ printf("ファイルが開けませんでした。\n"); exit(2); } while(fscanf(fp, "%lf %lf", &x, &y) != EOF){ num++; } printf("%d\n", num); fclose(fp); return(0); }このような感じで fscanf を用いて値を取得していくとき、
参照されるファイル data.txt に記述されている値が不正な場合(数値以外の記述があるなど)を判定する方法はありますか?
不正な記述があると入力が止まらないようなので num > 1000 などとすればできそうなのですが、
もっとスマートな方法はないかと思い質問させていただきました。
より適した方法があれば教えて頂きたいのですが…。
また、fscanfではプログラムで示したように2つずつ値を入力していますが、
data.txt に記述されている値が奇数個であった場合、最終的に y には 0 が代入されるのでしょうか?
それともコンパイラ等によって異なってしまうのでしょうか?
初歩的な内容かもしれませんが宜しくお願いします。