求怎么样将一个文本内容循环写入有限的缓存区?
我定义了一个char buff[256]="\0";
然后用fopen打开一个文档
因为文档内容很多,无法写入256字节的buff里面,所以想要写个循环
我想到2个方法
第一个
while(feof(fp)!=EFO)
{
fread(buff,256,1,fp);
cout<<buff<<"\n";
//此处自己对buff内容进行处理
}
这样写,貌似可以0-255 256-511字节这样不断读下去,直到结束为止
但是我这样写却碰到内存泄露,打印出乱码?
求解
第二个方法是用ftell获得文档大小n,然后写个
for(int i=0;i<n;i++)
但是循环体里面的fread要怎么写呢?才能每次循环从上一次循环结束的下一个字符开始读取?
求解!
[解决办法]
请检查sprintf的返回值。