编写一个程序,读文件file1.txt的内容,例“12 34 56”,逆序输出到file2.txt中,例“56 34 12”。用c语言
时间: 2024-09-22 13:00:39 浏览: 33
c++输入一个数字,逆序输出.txt
在C语言中,你可以使用标准库函数如`fopen`, `fclose`, `fgets`, 和 `fprintf` 来编写这样的程序。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含处理内存分配错误的头文件
#define MAX_LINE_LENGTH 100
void reverse_and_write(char *input_file, char *output_file) {
FILE *input = fopen(input_file, "r"); // 打开输入文件
if (input == NULL) {
perror("Failed to open input file");
return;
}
FILE *output = fopen(output_file, "w"); // 打开输出文件,如果不存在则创建
if (output == NULL) {
perror("Failed to open output file");
fclose(input); // 关闭输入文件,因为操作失败了
return;
}
char line[MAX_LINE_LENGTH]; // 存储行内容
size_t len;
while ((len = fgets(line, MAX_LINE_LENGTH, input)) != 0) { // 逐行读取
char reversed_line[len + 1]; // 为了存储反向字符串,需要额外的空间存放结束符'\0'
for (size_t i = 0; i < len; i++) {
reversed_line[len - i - 1] = line[i]; // 反转字符
}
reversed_line[len] = '\0'; // 添加结束符
fprintf(output, "%s\n", reversed_line); // 写入反向的行到输出文件
}
fclose(input); // 关闭输入文件
fclose(output); // 关闭输出文件
}
int main() {
const char *input_file = "file1.txt";
const char *output_file = "file2.txt";
reverse_and_write(input_file, output_file);
printf("File contents have been successfully reversed and written to %s.\n", output_file);
return 0;
}
```
这个程序会打开`file1.txt`,逐行读取并反转每一行的内容,然后将结果写入`file2.txt`。注意,这里假设输入文件的每一行都是由空格分隔的整数。
阅读全文