📅  最后修改于: 2023-12-03 14:40:26.649000             🧑  作者: Mango
在编程过程中,我们时常需要对文件进行读写操作。而有些场合下,我们需要对文件的内容进行反转。本文将介绍如何使用C语言编写程序反转文件中内容的方法。
反转文件的内容可以通过以下步骤实现:
下面是具体实现的代码:
#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语言编写程序反转文件中内容的方法。在实际工作中,我们会遇到各种需求,掌握文件读写的基本操作是必不可少的技能。