📌  相关文章
📜  用C程序将一个文件的内容复制到另一个文件(1)

📅  最后修改于: 2023-12-03 15:27:09.386000             🧑  作者: Mango

用C程序将一个文件的内容复制到另一个文件

在C语言中,我们可以用标准库函数fopenfreadfwrite等函数来进行文件的读取和写入操作。

以下是一个将源文件复制到目标文件的程序示例:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *src_file, *dst_file;    // 定义源文件和目标文件的句柄
    char buffer[1024];            // 定义读写缓冲区
    size_t size;                  // 定义读取数据的长度

    src_file = fopen("source.file", "rb");    // 打开源文件,以二进制方式读取
    if (src_file == NULL) {
        perror("Fail to open the source file.");
        exit(EXIT_FAILURE);
    }

    dst_file = fopen("dest.file", "wb");      // 打开目标文件,以二进制方式写入
    if (dst_file == NULL) {
        fclose(src_file);    // 如果打开目标文件失败,需要关闭源文件
        perror("Fail to open the destination file.");
        exit(EXIT_FAILURE);
    }

    while ((size = fread(buffer, 1, sizeof(buffer), src_file)) > 0) {    // 从源文件读取数据
        fwrite(buffer, 1, size, dst_file);    // 将读取数据写入目标文件
    }

    fclose(src_file);   // 关闭文件
    fclose(dst_file);

    return 0;
}

这个程序将会读取当前目录下名为source.file的文件,并将其内容复制到名为dest.file的文件中。

请注意以下几点:

  • fopen函数可以用来打开文件,需要传入两个参数,第一个是文件名,第二个是打开方式。打开方式既可以是"r"(读取),也可以是"w"(写入),还可以在打开方式后加上"b"(二进制方式)和"t"(文本方式)等修饰符。
  • 读取文件的函数是fread,其参数依次为读取缓冲区的地址、单个读取数据的字节数、读取数据的长度和文件句柄。读取成功后,函数返回读取的数据长度。如果读取失败或者已经到达文件结尾,函数返回值都为0。
  • 写入文件的函数是fwrite,其参数依次为写入缓冲区的地址、单个写入数据的字节数、写入数据的长度和文件句柄。写入成功后,函数返回值为写入数据的长度。

以上就是一个简单的文件复制程序的实现。当然,实际的程序可能会包含更加完备的错误处理和文件打开方式控制等。