Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
流输出字符串/字符,而不是双精度 我有一个前雇员开发的C++代码。 我试图澄清/测试一些软件结果。 在中间步骤中,软件保存一个带有结果的“二进制”dat文件,该文件随后由软件的另一部分导入_C++_String_Double_Ofstream - Fatal编程技术网

流输出字符串/字符,而不是双精度 我有一个前雇员开发的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;