だから、これはかなり簡単だと思います。私は実際に何が間違っているのかを理解することさえできず、それが私を最も嫌うものです。ファイルからの読み込みに問題があります。
私はファイルからいくつかの数字を読まなければなりませんが、これらの数字は科学的表記です。サンプルファイルには、このような数字を持っているでしょう:
1.00090E+00,2.90000E+00
だから私は、私は単純に、このようにそれを読んだと思った:ダブルは、無視し、別のダブルを取得し、文字を無視し、int型を取得し、文字を無視します文字、そしてこの例のように、それは希望、最終的にint型を取得します:
だから、get (1.00090)
ignore (E)
get (+00)
ignore (,)
get (2.90000)
ignore (E)
get (+00)
、私はこれらの関数fscanfを書いた:
fscanf(arquivo, " %lf%*c%d%*c", &mantissa1, &expoente1);
x[i] = numToFloat(mantissa1, expoente1);
fscanf(arquivo, "%lf%*c%d", &mantissa2, &expoente2);
fx[i] = numToFloat(mantissa2, expoente2);
私は理解を簡単にするためにそれらを分離しました。しかし、その後、それは動作しません。最初の倍精度浮動小数点数型(double)を正しく読み込みますが、それはintを駄目にします。そして、それは2番目のfscanfのすべてを駄目にします。 私は考えることができるすべてを試みた。書式設定された文字列をfscanf("%lfE%d,"
および"%lfE%d"
)に配置します。信号を文字変数("%lf%*c%c%d%*c"
)に読み込む。それは動作しません。
何が間違っていると思いますか?