如何用c++ 将屏幕上显示的内容打印到一个文本文件

我在用C++ GUI,*.exe是dos界面的那种。我已经把结果输出到dos屏幕上,但我是希望将屏幕上的所有内容都输出到一个文本文件。应该如何做到呢?谢谢。
不好意思, 还是出现"晥晦晦晦晦晦晦晦晦晦晦晦晦晦晦⁦†††††††††††††††††††††††††††††††††††††††"的乱码。我的windows和C++都是英文版,这会是一个问题吗?

直接使用 标准库里面的 ofstream 类,建立一个对象,然后像使用 cout 标准对象一样即可。
如:

#include<fstream> // 标准库文件IO部分的头文件
//创建一个 ofstream 对象,并与文件 c:\\1.txt 关联,不存在则新建
std::ofstream outfile("c:\\1.txt");

std::string str("Hello World!");

//现在可以将 outfile 像 cout 一样的使用了
outfile << "Write in file:" << str << std::endl;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-09
在命令行中输入“文件名.exe>>文本文件名.txt”
第2个回答  2010-04-11
你用的是什么版本的vc++,我用的是vs2008,程序生成正常,文本用记事本打开正常,
英文应该不是问题,因为文本是unicode的
要不你在程序最前面加上#define UNICODE,这在vs2008默认的

#include <iostream>
#include <windows.h>
using namespace std;

#define BUFSIZE 2000
BOOL ReadCmd(PTSTR szFileName);
int main()
{
cout<<"effffffffffffffffffffffffffffff"<<endl;
ReadCmd(TEXT("a.txt"));
return 0;
}
BOOL ReadCmd(PTSTR szFileName)
{
HANDLE hStdout;
TCHAR buffer[BUFSIZE];
DWORD dwRead;
COORD coord;
coord.X=0;
coord.Y=0;

hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
if(!hStdout)
return FALSE;
ReadConsoleOutputCharacter(hStdout,buffer,BUFSIZE,coord,&dwRead);
HANDLE hFile=CreateFile(szFileName,GENERIC_WRITE,0,NULL,
CREATE_ALWAYS,FILE_FLAG_SEQUENTIAL_SCAN,NULL);
if(hFile==INVALID_HANDLE_VALUE)
return FALSE;
WORD wHead=0xFEFF;
DWORD dwWritten;
WriteFile(hFile,&wHead,2,&dwWritten,NULL);
WriteFile(hFile,buffer,sizeof(buffer),&dwWritten,NULL);
CloseHandle(hFile);
return TRUE;
}本回答被提问者采纳
第3个回答  2010-04-09
执行 *.exe 用:

*.exe >> abc.txt
相似回答