fscanf を使用してテキスト ファイルを読み込もうとしています。入力ファイルは次のようになります。
1
Test
0
32.1
ランダムな値として読み取られる最初の整数を除いて、すべて正常に読み取られます。
私のコード:
while((fgets(string,64,fp) != NULL)){
fscanf(fp, "%i\n", &tid);
fscanf(fp, "%s\n", name);
fscanf(fp, "%d\n", &stat);
fscanf(fp, "%f\n", &per);
printf("%d %s %d %f", tid, name, stat, per);
}
出力:
11281472 Test 0 32.0999982
誰かが私が間違っていることを知っていますか?
参照用の関数全体:
Task *readData(Task *strt, char *fname){
#ifdef DEBUG
fprintf(stderr, "Entered Data import method\n");
#endif
char name[30];
int tid, stat;
float per;
FILE *fp;
fp= fopen(fname, "r");
if(fgetc(fp) == EOF){
printf("File is empty");
}
else{
while(!feof(fp)){
fscanf(fp, "%i\n", &tid);
fscanf(fp, "%s\n", name);
fscanf(fp, "%d\n", &stat);
fscanf(fp, "%f\n", &per);
printf("%d %s %d %f", tid, name, stat, per);
strt = AddB(strt, tid, name, stat, per);
}
}
return (strt);
}