如何用c++ 将屏幕上显示的内容打印到一个文本文件
我在用C++GUI,*.exe是dos界面的那种。我已经把结果输出到dos屏幕上,但我是希望将屏幕上的所有内容都输出到一个文本文件。应该如何做到呢?谢谢。不好意思,还是出...
我在用C++ GUI,*.exe是dos界面的那种。我已经把结果输出到dos屏幕上,但我是希望将屏幕上的所有内容都输出到一个文本文件。应该如何做到呢?谢谢。
不好意思, 还是出现"晥晦晦晦晦晦晦晦晦晦晦晦晦晦晦†††††††††††††††††††††††††††††††††††††††"的乱码。我的windows和C++都是英文版,这会是一个问题吗? 展开
不好意思, 还是出现"晥晦晦晦晦晦晦晦晦晦晦晦晦晦晦†††††††††††††††††††††††††††††††††††††††"的乱码。我的windows和C++都是英文版,这会是一个问题吗? 展开
4个回答
展开全部
直接使用 标准库里面的 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;
如:
#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;
展开全部
在命令行中输入“文件名.exe>>文本文件名.txt”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用的是什么版本的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;
}
英文应该不是问题,因为文本是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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行 *.exe 用:
*.exe >> abc.txt
*.exe >> abc.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询