मेरे पास निम्न कोड है और यह बहुत अच्छा काम करता है (इस तथ्य के अलावा कि यह बहुत धीमा है, लेकिन मुझे इसके बारे में ज्यादा परवाह नहीं है)। यह अंतर्ज्ञानी प्रतीत नहीं होता है कि यह इन्फाइल की संपूर्ण सामग्री को बहिर्वाह में लिख देगा।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;
}
कोई अंतर्दृष्टि?
मैं उस स्पष्ट कॉल को 'बंद()' की आवश्यकता नहीं जोड़ूंगा। वैसे भी विनाशक वही करेंगे। और वह कुछ लाइनों को बचाता है। ;) –