21xrx.com
2024-12-22 23:44:01 Sunday
登录
文章检索 我的文章 写文章
C++复制文件
2023-06-29 01:13:17 深夜i     --     --
C++ 复制 文件

在C++编程中,我们常常需要复制文件。这可以通过复制整个文件或一部分来实现。下面将介绍如何在C++中复制文件。

方法一:使用fopen()、fread()、fwrite()和fclose()

fopen("文件名1","rb")打开要被复制的文件,将其以二进制格式读取。

fopen("文件名2","wb")将要复制的文件,以二进制格式写入。

fread()函数读取第一个文件的内容,并用fwrite()函数写入第二个文件。循环此过程,直到整个文件都被复制完成。

最后,使用fclose()函数关闭两个文件。

以下是示例C++代码:


#include <iostream>

#include <cstdio>

using namespace std;

int main()

{

  FILE *fp1, *fp2;

  char ch;

  fp1 = fopen("file1.txt", "rb");

  if(fp1 == NULL) {

    cout<<"错误!无法打开第一个文件\n";

    exit(0);

  }

  fp2 = fopen("file2.txt", "wb");

  if(fp2 == NULL) {

    cout<<"错误!无法打开第二个文件\n";

    exit(0);

  }

  while(fread(&ch, sizeof(ch), 1, fp1)) {

    fwrite(&ch, sizeof(ch), 1, fp2);

  }

  cout<<"文件已成功复制!\n";

  fclose(fp1);

  fclose(fp2);

  return 0;

}

方法二:使用fstream类

C++中也提供了一个称为fstream的标准库类,用于处理文件输入和输出。 当利用fstream类进行文件复制时,我们需要使用两个文件对象:in和out。

要打开一个文件,我们可以使用open()函数,并指定打开方式(输入或输出)。要向指定的文件夹中写入内容,可以使用write()函数。要从打开的文件中读取内容,可以使用read()函数。

以下是示例C++代码:


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

  char ch;

  ifstream in("file1.txt", ios::binary);

  ofstream out("file2.txt", ios::binary);

  if(!in) {

    cout<<"错误!无法打开第一个文件\n";

    exit(0);

  }

  if(!out) {

    cout<<"错误!无法打开第二个文件\n";

    exit(0);

  }

  while(in.read(&ch, 1)) {

    out.write(&ch, 1);

  }

  cout<<"文件已成功复制!\n";

  in.close();

  out.close();

  return 0;

}

以上两种方法都可以用来复制文件。 无论你选择哪种方法,都要记得在处理文件后关闭相关文件。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复