我有两个二进制文件,我想用另一个附加一个。 我该怎么办?
std::ofstream outFile;
outFile.open( "file.bin", ? );
巢线应该是什么?
答案 0 :(得分:3)
这有一个班轮:
std::ofstream outFile("file.out", std::ios::ate );
std::ifstream inFile( "file.in" );
std::copy(
(std::istreambuf_iterator<char>(inFile)), // (*)
std::istreambuf_iterator<char>(),
std::ostreambuf_iterator<char>(outFile)
);
(*)额外的一对括号,以防止将其解析为函数声明。
为了获得更好的性能,您可以使用ifstream::read
以块为单位读取文件,并使用ofstream::write
进行编写。
答案 1 :(得分:0)
这不是最优化的,但您可以尝试以下方式:
std::ofstream outFile( "file.bin", ios_base::app | ios_base::out );
std::ifstream inFile(source_file_name, ios_base::binary | ios_base::in);
source >> noskipws;
char c;
while (inFile >> c) {
outFile << c;
}
你可以通过使用更大的缓冲区来提高效率。