关于fread读文件会多读一部分内容出来,请帮忙看一下,多谢
关于fread读文件会多读一部分内容出来,请帮忙看一下,谢谢这里读到ctemp里面的内容后面会多出一部分出来,不
关于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 ; //放置字符串结束符。