读书人

关于fread读文件会多读一部分内容出来

发布时间: 2013-06-26 14:29:32 作者: rapoo

关于fread读文件会多读一部分内容出来,请帮忙看一下,谢谢
这里读到ctemp里面的内容后面会多出一部分出来,不知道为什么 ,但是在数据量比较少的时候是正常的,谢谢了


int filesize = getFileSize(filepath);
FILE *stream = fopen(filepath.c_str(), "r");
char *ctemp = new char[filesize];
memset(ctemp,0,filesize);
fread(ctemp, filesize, 1, stream);




[解决办法]
好久碰文件案操作了~ 不是你一思路...印象中案不是以 byte 量...好像是以位吧? 例如一 1024 byte 等......
[解决办法]
缓冲的大小,再多一个字节,保存作为字符串结束的0x0.
[解决办法]
多读出一个字节做为字符串终止符
[解决办法]
char *ctemp = new char[filesize+1];//多申请一个字节,用于放字节串结束符。
//memset(ctemp,0,filesize); //没必要的操作。
size_t size = fread(ctemp, filesize, 1, stream);//返回读取的字节数,最多filesize字节
ctemp[size] = 0 ; //放置字符串结束符。


读书人网 >C++ Builder

热点推荐