Đây là triển khai của tôi để sao chép tệp, bạn nên xem xét hệ thống tệp tăng vì thư viện đó sẽ là một phần của thư viện chuẩn C++.
#include <fstream>
#include <memory>
//C++98 implementation, this function returns true if the copy was successful, false otherwise.
bool copy_file(const char* From, const char* To, std::size_t MaxBufferSize = 1048576)
{
std::ifstream is(From, std::ios_base::binary);
std::ofstream os(To, std::ios_base::binary);
std::pair<char*,std::ptrdiff_t> buffer;
buffer = std::get_temporary_buffer<char>(MaxBufferSize);
//Note that exception() == 0 in both file streams,
//so you will not have a memory leak in case of fail.
while(is.good() and os)
{
is.read(buffer.first, buffer.second);
os.write(buffer.first, is.gcount());
}
std::return_temporary_buffer(buffer.first);
if(os.fail()) return false;
if(is.eof()) return true;
return false;
}
#include <iostream>
int main()
{
bool CopyResult = copy_file("test.in","test.out");
std::boolalpha(std::cout);
std::cout << "Could it copy the file? " << CopyResult << '\n';
}
Câu trả lời của Nisarg có vẻ đẹp, nhưng giải pháp đó chậm.
'CopyFile' không hoạt động, nhưng làm cách nào tôi có thể thực hiện điều này bằng cách sử dụng fstream. –
Sau đó, bạn nên thay đổi tiêu đề của câu hỏi của bạn và chỉ định rằng trong câu hỏi thay vì yêu cầu sao chép dán trong cửa sổ ... – UpAndAdam