0

我有一个 .crl 文件,我想将其复制到另一个位置。从我到现在看到的所有帖子中,不复制内容就无法完成。有什么方法可以在不复制内容的情况下将文件传输到 cpp 中的另一个位置?

我尝试使用通常的 fopen 方法复制内容。但是数据没有被写入缓冲区。如果没有直接的方法,谁能告诉我如何读取证书文件并将内容写入不同位置的另一个文件?

我也尝试过 fstream 方法

std::ofstream dest("destination.crl", std::ios::trunc|std::ios::binary);

if(!dest.good())     
{         std::cerr << "error opening output file\n";      
          //std::exit(2);    
}    
std::fstream src("sourcec.crl", std::ios::binary); 
if(!src.good())     
{         std::cerr << "error opening input file\n"; 
          //std::exit(1);    
}
dest << src.rdbuf();   
if(!src.eof())           std::cerr << "reading from file failed\n";     
if(!dest.good())         std::cerr << "writing to file failed\n"; 

但它显示了错误:错误打开输入文件读取文件失败写入文件失败

先感谢您

4

2 回答 2

0

我在这里找到了这个。

看,这可能对你有帮助。由于您不想阅读,我以为您不想自己执行读写操作。

#include <istream>
#include <iostream>
#include <fstream>
#include <iterator>


using namespace std;


int main()

{

        fstream f("source.crl", fstream::in|fstream::binary);
        f << noskipws;
        istream_iterator<unsigned char> begin(f);
        istream_iterator<unsigned char> end;

        fstream f2("destination.crl",
        fstream::out|fstream::trunc|fstream::binary);
        ostream_iterator<char> begin2(f2);

        copy(begin, end, begin2);
}
于 2013-10-31T12:06:56.363 回答
0

根据您的回复,我写了另一个答案。

对于 Window,有 function [CopyFile][1]。您可以使用此功能复制文件,而无需自己阅读内容。

对于基于 linux/unix,我无法找到CopyFile.

我相信这个问题可能会对你有所帮助。

于 2013-11-04T12:03:44.490 回答