读书人

关于linux下的fread函数,该怎么处理

发布时间: 2012-06-05 13:54:06 作者: rapoo

关于linux下的fread函数

FILE *file=fopen("F:\\IP地址.txt","r");
if(!file)
{
cerr<<"error!"<<endl;
}

char buf[50000];
memset(buf,0x00,sizeof(buf));


fread(buf, sizeof(buf),1, file);
cout<<buf<<endl;


这个在windows下编译正常
在linux下出现“段错误",但是只要把
fread(buf, sizeof(buf),1, file);
改成fread(buf,8,1,file);
则可以读8个字节
那要怎么改才能读取整个文件的内容??

为什么在linux下会出错呢

[解决办法]
如果sizeof(file)的话,就显示段错误,将sizeof(file)改成8
=========================
sizeof(file) ??
[解决办法]
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

读书人网 >C++

热点推荐