我是C ++的新手,我有一个预构建的代码,需要对其进行修改以保存其打印输出。在原始代码中,它包含诸如
_stprintf_s(szFrame, _countof(szFrame), _T("%+011.6f %+011.6f %+011.6f "), pData[0], pData[1], pData[2]));
和
_stprintf_s(szFrame, _countof(szFrame), _T("%4x Sensor %d: "), pHdr->preamble, pHdr->station );
这种类型的_stprintf_s在运行时会在命令提示符下输出一些结果。我的目标是将它们另存为文本文件。但是,当我尝试按照下面的代码保存此代码时,它没有保存确切的字符串。而是保存一个数字(大约6位数字)。我的问题是关于_T(“”)部分,其中3个数据分别为pData [0],pData [1],pData [2]。每个人都应该有一个数字,格式为%+ 011.6f。但是当我运行下面的代码时,我只会得到一个像164242的数字。也许只是获得了第一部分“ szFrame”。
#include<fstream>
ofstream myfile("C:/Users/slee23/Desktop/newfolder/example.txt", ios_base::app);
myfile << _stprintf_s(szFrame, _countof(szFrame), _T("%+011.6f %+011.6f %+011.6f "), pData[0], pData[1], pData[2]));
或
myfile << std::to_string(_stprintf_s(szFrame, _countof(szFrame), _T("%+011.6f %+011.6f %+011.6f "), pData[0], pData[1], pData[2])));
您能给我建议解决这个问题吗?
答案 0 :(得分:2)
现有代码正在打印到缓冲区szFrame中,您需要将其写入流中。
#include<fstream>
_stprintf_s(szFrame, _countof(szFrame), _T("%+011.6f %+011.6f %+011.6f "), pData[0], pData[1], pData[2]);
ofstream myfile("C:/Users/slee23/Desktop/newfolder/example.txt", ios_base::app);
myFile << szFrame;