关于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仍继续读;读写的内容当字节看待
弄混了