📜  C程序反转文件的内容并打印(1)

📅  最后修改于: 2023-12-03 14:40:26.649000             🧑  作者: Mango

C程序反转文件的内容并打印介绍

在编程过程中,我们时常需要对文件进行读写操作。而有些场合下,我们需要对文件的内容进行反转。本文将介绍如何使用C语言编写程序反转文件中内容的方法。

实现方法

反转文件的内容可以通过以下步骤实现:

  1. 打开文件并确定文件大小;
  2. 将文件内容读取到缓冲区;
  3. 将缓冲区中的内容反转;
  4. 将反转后的内容输出到新的文件中;
  5. 关闭文件并释放内存。

下面是具体实现的代码:

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

int main()
{
    FILE *fPtr, *outPtr;
    long size;
    char *buffer, *output;

    // 打开原始文件,确定文件大小
    fPtr = fopen("input.txt", "rb");
    if (fPtr == NULL) {
        printf("文件打开失败!");
        exit(1);
    }
    fseek(fPtr, 0, SEEK_END);
    size = ftell(fPtr);
    fseek(fPtr, 0, SEEK_SET);

    // 分配缓冲区和输出缓冲区的内存
    buffer = (char*) calloc(size + 1, sizeof(char));
    output = (char*) calloc(size + 1, sizeof(char));

    // 读取文件内容到缓冲区
    fread(buffer, 1, size, fPtr);

    // 反转缓冲区内容
    for (int i = 0; i < size; i++) {
        output[i] = buffer[size - i - 1];
    }

    // 打开输出文件并将缓冲区内容写入
    outPtr = fopen("output.txt", "wb");
    if (outPtr == NULL) {
        printf("输出文件打开失败!");
        exit(1);
    }
    fwrite(output, 1, size, outPtr);

    // 关闭文件并释放内存
    fclose(fPtr);
    fclose(outPtr);
    free(output);
    free(buffer);

    printf("文件内容反转并输出到output.txt文件中!\n");
    return 0;
}
测试样例

测试样例为 "input.txt" 内容为 "Hello World!",执行程序后输出到 "output.txt" 中的内容为 "dlroW olleH"。可以通过以下代码测试该程序:

#include <stdio.h>

int main()
{
    FILE *fPtr;
    char c;

    fPtr = fopen("output.txt", "rb");
    if (fPtr == NULL) {
        printf("文件打开失败!");
        return 1;
    }

    printf("反转后的文件内容为:");
    while ((c = fgetc(fPtr)) != EOF) {
        printf("%c", c);
    }

    fclose(fPtr);
    return 0;
}
总结

本文介绍了如何使用C语言编写程序反转文件中内容的方法。在实际工作中,我们会遇到各种需求,掌握文件读写的基本操作是必不可少的技能。