一个文件 test.txt,文件内容为: 1 2 4 5 编程读写这个文件,修改其内容,添加一行,将文件内容变成: 1 2 3 4 5,该test.txt文件已存在,程序中需使用临时文件进行修改,如何使用c语言写这个程序
时间: 2024-03-12 13:44:16 浏览: 175
可以使用以下的C语言代码来实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char filename[] = "test.txt";
char tempname[] = "temp.txt";
FILE *fp, *temp;
char ch;
int num;
// 打开原始文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
// 创建临时文件
temp = fopen(tempname, "w");
if (temp == NULL) {
printf("无法创建临时文件\n");
fclose(fp);
return 1;
}
// 读取文件内容并修改
while ((ch = fgetc(fp)) != EOF) {
num = ch - '0';
if (num >= 1 && num <= 5) {
// 修改文件内容
if (num == 4) {
fputs("3 ", temp);
} else {
fputc(ch, temp);
}
}
}
// 添加新行
fputs("\n", temp);
fputs("1 2 3 4 5", temp);
// 关闭文件
fclose(fp);
fclose(temp);
// 删除原始文件
remove(filename);
// 重命名临时文件为原始文件的名称
rename(tempname, filename);
printf("文件修改成功\n");
return 0;
}
```
代码解释:
首先定义了两个文件名变量,一个是原始文件的名称,一个是临时文件的名称。然后打开原始文件并检查是否成功打开,如果打开失败则退出程序。接着创建临时文件并检查是否成功创建,如果创建失败则关闭原始文件并退出程序。
接下来读取原始文件的内容并修改,如果读取到的字符是数字 1 到 5,则判断是否需要修改,需要修改的数字为 4,将其修改为 3。修改后的内容输出到临时文件中。
最后在临时文件中添加新行和新内容,然后关闭文件。删除原始文件并将临时文件重命名为原始文件的名称。程序执行完毕后输出提示信息,程序结束。
阅读全文