第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;
}本回答被提问者采纳