我试图编写一个简单的程序,以1024字节的块的形式从文件(输入)中读取数据,然后将数据写入另一个文件(输出)。该程序到目前为止工作,但我遇到的问题是,如果它到达文件的末尾,最后一次读取不是一个整洁的1024字节块,然后它输出数组的其余部分的垃圾数据。我已经使用fstream函数可以正常工作,但是当我使用cstdio函数(分配是使用fread和fwrite)是我遇到问题时。这里是我的代码迄今:读取1kB块中的文件并使用cstdio写入另一个文件
#include <cstdio>
using namespace std;
int main()
{
FILE* fin;
FILE* fout;
char block[1024];
fin = fopen("input", "r");
fout = fopen("output", "w+");
while (!feof(fin))
{
fread(block,1024,1,fin);
fwrite(block,1,1024,fout);
}
fclose(fin);
fclose(fout);
return 0;
}
我敢肯定,这是一个简单的修复,但我似乎无法找到关于它的任何cplusplus.com信息,我无法弄清楚如何字的问题在谷歌上。我很欣赏你对此的看法。
为什么stdio代替流? (不是说它与你的bug有关) –