我有以下代码,它工作得很好(除了它很慢的事实,但我不太在意)。这似乎并不直观,它会将整个infile的内容写入outfile。ifstream :: rdbuf()实际上做了什么?
// Returns 1 if failed and 0 if successful
int WriteFileContentsToNewFile(string inFilename, string outFilename)
{
ifstream infile(inFilename.c_str(), ios::binary);
ofstream outfile(outFilename.c_str(), ios::binary);
if(infile.is_open() && outfile.is_open() && infile.good() && outfile.good())
{
outfile << infile.rdbuf();
outfile.close();
infile.close();
}
else
return 1;
return 0;
}
任何见解?
我想补充一点,不需要对close()进行显式调用。无论如何,析构函数都会这样做。这节省了一些线。 ;) – 2015-05-22 22:15:59