我有以下代碼,它工作得很好(除了它很慢的事實,但我不太在意)。這似乎並不直觀,它會將整個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