c++ - 将 _stprintf_s 保存在 txt 文件中
问题描述
我是 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(" ") 部分,其中包含 pData[0]、pData[1]、pData[2] 的 3 个数据。每个都应该有一个格式为 %+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])));
你能给我任何建议来解决这个问题吗?
解决方案
现有代码正在打印到缓冲区 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;