3

ファイルから一連のデータを読み取る必要があります。次のようになります。

0   1.8750  274.90  0   0   0
1   3.7500  370.50  0   1   0
2   7.5000  463.50  0   2   0

だから私は使用します:

fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);

正しく読み取れるかどうかを確認しようとすると、次を使用しました。

printf("A %d",a);
printf("B %f",b);

出力 :

A 0B -1.882607

では、なぜ fscanf は float を正しく読み取らないのでしょうか??

4

1 に答える 1

1

問題の原因として、ディレクティブの不一致 または不完全な読み取りが考えられます。ファイルが開かれていないか、予期しない入力テキストが原因である可能性があります。fscanf()

fscanf()

A 0B -1.882607
| || +--------- b value -1.882607
| |+----------- Letters B space
| +------------ a value 0
+-------------- Letters A space

変数が次のタイプであることを確認してください。

int a,d,t,q;
float b,c;

fscanf() の結果を確認する

int result = fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);
if (result != 6) {
  printf("Error, unexpected return value:%d\n", result);
}

OPからの追加情報が役立ちます。

于 2013-08-05T22:53:02.163 に答える