元従業員が開発した C++ コードがいくつかあります。ソフトウェアの結果のいくつかを明確化/テストしようとしています。中間ステップで、ソフトウェアは結果を含む「バイナリ」dat ファイルを保存します。このファイルは、後でソフトウェアの別の部分によってインポートされます。
私の目的は、この出力を「バイナリ」から人間が読める数値に変更することです。
出力ファイルは次のように定義されています。
ofstream pricingOutputFile;
double *outputMatrix[MarketCurves::maxAreaNr];
ofstream outputFile[MarketCurves::maxAreaNr];
書き込み手順は次のとおりです。
pricingOutputFile.write((char *)&outputMatrix[area], sizeof(double));
行列は「倍精度」で満たされています
これを変更して人間が読めるファイルを出力する方法はありますか?
std::string
cout
私はさまざまな方法を「ググって」試しましたが、今まで成功していませんでした。
<< で提案を試みましたが、次のエラーが発生しました: エラー C2297: '<<' : 不正、右オペランドの型が 'double' です
彼女が私を正しい軌道に乗せたという提案:
sprintf_s(buffer, 10, "%-8.2f", rowPos);
pricingOutputFile.write((char *)&buffer, 10);
インスピレーションは http://www.tenouk.com/cpluscodesnippet/usingsprintf_s.htmlにあります。
助けてくれてありがとう