读书人

初学者的疑惑!

发布时间: 2012-02-08 19:52:21 作者: rapoo

菜鸟的疑惑!!!!!
代码:
FILE *file;
if(NULL==(file=fopen("1.txt","r")))
MessageBox(_T("打开文件失败"));

int i;
fseek(file,0,SEEK_END);
i=ftell(file);
//memset(readBuf,0,100);
char* readBuf=new char[i+1];
readBuf[i]=0;
fread(readBuf,1,i,file);
fclose(file);
//MessageBox((LPCTSTR)readBuf);
CString str;
str.Format(_T("%s"),readBuf);
MessageBox(str);
问题:显示乱码。
调试的时候提示file 错误指针
请问各位大侠我错在哪?

[解决办法]
我的理解是:执行了fseek(file,0,SEEK_END); 之后,file指针被移到文件结尾了。然后再执行fread(readBuf,1,i,file); 就会出错。
不知道对不对
[解决办法]
试试在fread之前加一行:
(void) fseek( file, 0L, SEEK_SET );
或者
rewind( file );

[解决办法]
fread的之前时候文件指针是指向文件末尾。fread的时候已经是没有数据了。
读不出来。所以,在读之前把文件指针移到开头
用rewind(file);

读书人网 >C语言

热点推荐