有时候我们需要把程序运行的结果输出到txt文件中,在网上有很多人给出了答案,但是配套使用效果不好。这里小编整理了一下。
1、MFC中
MFC中使用CStdioFile类实现变量写入。CStdioFile继承自CFile,建立一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
http://blog.youkuaiyun.com/hisinwang/article/details/45725299中有具体示例,百度词条中有CStdioFile类成员与参数形式
CStdioFile ioStream_L1;//设置全局变量
void WriteVelocity(CString x1, CString x2, CString x3)
{
sum1 =x1 + " " + x2 + " \n " + x3;
bool i = ioStream_L1.Open(_T("D:\\picture\\km_info.txt"), CFile::modeWrite | CFile::modeCreate | CFile::shareDenyNone);//第一个参数为写入文件的名称,第二个参数为写入的方式,此处为共享式写入,如果文件不存在就创建
while (!i)
{ ioStream_L1.Open(_T("D:\\picture\\km_info.txt"), CFile::modeWrite | CFile::modeCreate | CFile::shareDenyNone);
}//如果一次打开不成功,再打开一次,也可以加设置为打开不成功退出
ioStream_L1.WriteString(sum1);//写入CString变量
ioStream_L1.Close();//此处必须关闭打开的文件
}
2、win32中
WIN32中用fstream实现文件流输入输出,fstream 它 有两个子类:ifstream(input file stream)和ofstream(outpu file stream);
http://blog.youkuaiyun.com/kingstar158/article/details/6859379
这里函数功能为把我目标跟踪得到的RECT信息存入txt文本中
#include <fstream>//包含此头文件
void WrigeROILocation(int x1, int x2, int x3, int x4)
{
fstream out_file;
const char* filename = "F:\\目标跟踪测试集\\FaceOcc1\\my_results.txt";//定义文件名,
out_file.open(filename, ios::out | ios::app);//out表示读文件,app表示在末尾添加
out_file << x1 << " " << x2 << " " << x3 << " " << x4 << " " << endl;//out_file千万不要写成cout,cout是显示出来,并不能写入文件
out_file.close();//每次写完关闭文件,如果不关闭再次打开时,可能会出错
}
优快云中有人分析了 C++中的fstream/ifstream/ofstream和MFC中的CFile/CStdioFile,
http://blog.youkuaiyun.com/kingcat666/article/details/44850575可做参考