流输出字符串/字符,而不是双精度 我有一个前雇员开发的C++代码。 我试图澄清/测试一些软件结果。 在中间步骤中,软件保存一个带有结果的“二进制”dat文件,该文件随后由软件的另一部分导入
我的目标是将此输出从“二进制”更改为人类可读的数字 输出文件定义如下:流输出字符串/字符,而不是双精度 我有一个前雇员开发的C++代码。 我试图澄清/测试一些软件结果。 在中间步骤中,软件保存一个带有结果的“二进制”dat文件,该文件随后由软件的另一部分导入,c++,string,double,ofstream,C++,String,Double,Ofstream,我的目标是将此输出从“二进制”更改为人类可读的数字 输出文件定义如下: ofstream pricingOutputFile; double *outputMatrix[MarketCurves::maxAreaNr]; ofstream outputFile[MarketCurves::maxAreaNr]; 写入步骤如下所示: pricingOutputFile.write((char *)&outputMatrix[area], sizeof(double)); 矩阵中充满了
ofstream pricingOutputFile;
double *outputMatrix[MarketCurves::maxAreaNr];
ofstream outputFile[MarketCurves::maxAreaNr];
写入步骤如下所示:
pricingOutputFile.write((char *)&outputMatrix[area], sizeof(double));
矩阵中充满了“double”
有没有办法将其更改为输出一个人类可读的文件
我尝试过各种std::string
cout
和其他“谷歌搜索”的方法,但直到现在都没有成功
在这段代码中,用尝试了这个建议,一个double占用的内存被转储到一个文件中
pricingOutputFile.write((char *)&outputMatrix[area], sizeof(double));
要产生人类可读性,您需要使用重载运算符她将我推上正确轨道的建议:
sprintf_s(buffer, 10, "%-8.2f", rowPos);
pricingOutputFile.write((char *)&buffer, 10);
sprintf_s(缓冲区,10,%-8.2f),rowPos);
写入((char*)和缓冲区,10)
灵感来源于:您可以将以下内容内联:
pricingOutputFile << std::fixed
<< std::setw(11)
<< std::setprecision(6)
<< std::setfill('0')
<< rowMin;
pricingoutput文件如何打印“输出”?显示outputMatrix
的声明您是否尝试过类似pricingOutputFile的内容我不同意。您已经有了一条流,只需使用它。如果需要格式化双精度文件。我相信这样更容易阅读。嗨,帕特里克。试图实现您的建议,但在尝试以下错误C3867时出现了令人信服的错误:“std::basic_ostream::write”:函数调用缺少参数列表;使用“&std::basic\u ostream::write”创建指向成员的指针,该成员出现[\u Elem=char,\u Traits=std::char\u Traits]错误C2296:'pricingOutputFile.write谢谢。确实删除了std::setfill('0')&std::fixed,因为这两个“设置”产生了负数问题,即:00-1.00000,但除此之外,这项工作做得很好!
pricingOutputFile << std::fixed
<< std::setw(11)
<< std::setprecision(6)
<< std::setfill('0')
<< rowMin;
void StreamPriceToFile(ofstream & output, const double & price) const
{
output << std::fixed
<< std::setw(11)
<< std::setprecision(6)
<< std::setfill('0')
<< price;
}
//wherever used
StreamPriceToFile(pricingOutputFile, rowMin);
//setup stream to receive a price
inline ios_base& PriceFormat(ios_base& io)
{
io.fixed(...);
...
}
//wherever used
pricingOutputFile << PriceFormat << rowMin;