在vs2008环境下,
void CFileView::OnFileWrite()
{
// TODO: 在此添加命令处理程序代码
FILE *pFile=fopen("1.txt","w");
fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
fclose(pFile);
}void CFileView::OnFileRead()
{
// TODO: 在此添加命令处理程序代码
FILE *pFile=fopen("1.txt","r");
char *pBuf;
fseek(pFile,0,SEEK_END);
int len=ftell(pFile);
pBuf=new char[len+1];
fread(pBuf,1,len,pFile);
pBuf[len]=0;
fclose(pFile);
MessageBox(pBuf);
}
messagebox输出的怎么是汉字乱码呢?如何修改?mfcfile
void CFileView::OnFileWrite()
{
// TODO: 在此添加命令处理程序代码
FILE *pFile=fopen("1.txt","w");
fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile);
fclose(pFile);
}void CFileView::OnFileRead()
{
// TODO: 在此添加命令处理程序代码
FILE *pFile=fopen("1.txt","r");
char *pBuf;
fseek(pFile,0,SEEK_END);
int len=ftell(pFile);
pBuf=new char[len+1];
fread(pBuf,1,len,pFile);
pBuf[len]=0;
fclose(pFile);
MessageBox(pBuf);
}
messagebox输出的怎么是汉字乱码呢?如何修改?mfcfile
你用 ‘记事本’ 打开 看看,
然后 另存为 UNCODE 的
再运行程序
改了1.txt格式,还是不行,代码都改成unicode的还是不行:void CFileView::OnFileWrite()
{
// TODO: 在此添加命令处理程序代码
FILE *pFile=fopen("1.txt","w");
fwrite(_T("http://www.sunxin.org"),2,strlen("http://www.sunxin.org"),pFile);
fclose(pFile);
}void CFileView::OnFileRead()
{
FILE *pFile=fopen("1.txt","r");
TCHAR *pBuf;
fseek(pFile,0,SEEK_END);
int len=ftell(pFile);
pBuf=new TCHAR[len+1];
fread(pBuf,1,len,pFile);
pBuf[len]=0;
fclose(pFile);
MessageBox(pBuf);
}
我用的是c的库函数,而且我把unicode改为多字节字符集,读取的仍然是乱码
fread(pBuf,1,len,pFile);
pBuf[len]=0;
字符串长度要用_tcslen