首页 > 解决方案 > 将 _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])));

你能给我任何建议来解决这个问题吗?

标签: c++printingsave

解决方案


现有代码正在打印到缓冲区 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;

推荐阅读