首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

初学者的疑惑!

2012-02-08 
菜鸟的疑惑!!!!!代码:FILE *fileif(NULL(filefopen(1.txt,r)))MessageBox(_T(打开文件失败))in

菜鸟的疑惑!!!!!
代码:  
  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);

热点排行