#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 が代入されるのでしょうか?
それともコンパイラ等によって異なってしまうのでしょうか?
初歩的な内容かもしれませんが宜しくお願いします。