linux 用fopen打开文件,修改里面的内容,并保存操作
时间: 2024-05-12 08:18:53 浏览: 211
以下是一个示例代码,它打开一个名为“example.txt”的文件,将其第一行的内容替换为“Hello World!”,然后将修改后的内容保存回文件中:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char buffer[255];
int line_num = 1;
fp = fopen("example.txt", "r+");
if (fp == NULL) {
printf("文件打开失败!\n");
exit(1);
}
while (fgets(buffer, 255, fp)) {
if (line_num == 1) {
fseek(fp, 0, SEEK_SET);
fprintf(fp, "Hello World!\n");
break;
}
line_num++;
}
fclose(fp);
return 0;
}
```
在这个例子中,我们使用了“r+”模式来打开文件,这意味着我们可以读取和写入文件。我们使用了fgets函数来读取文件的每一行,并使用fseek函数将文件指针移动到文件的开头,以便我们可以使用fprintf函数写入修改后的内容。最后,我们使用fclose函数关闭文件。
相关问题
linux 用fopen打开二进制文件,修改里面的内容,并保存操作
下面是一个示例程序,它打开一个二进制文件,将其中一个字节修改为0x33,并保存文件。
```
#include <stdio.h>
int main()
{
FILE *fp;
char buf[1];
fp = fopen("test.bin", "rb+");
if (fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
fseek(fp, 10, SEEK_SET);
fread(buf, 1, 1, fp);
printf("Original byte: %02X\n", buf[0]);
buf[0] = 0x33;
fseek(fp, -1, SEEK_CUR);
fwrite(buf, 1, 1, fp);
fclose(fp);
printf("File saved.\n");
return 0;
}
```
解释一下代码:
- 第3行:定义一个文件指针变量。
- 第4行:定义一个1字节大小的缓冲区,用于读取和写入文件。
- 第5行:以“rb+”模式打开文件,表示以二进制读写模式打开文件。
- 第6-9行:如果文件打开失败,输出错误信息,返回-1。
- 第10行:将文件指针移动到文件中的第11个字节(从0开始计数),即要修改的位置。
- 第11行:从文件中读取1字节到缓冲区中。
- 第12行:输出原始字节的值。
- 第13行:将缓冲区中的字节修改为0x33。
- 第14行:将文件指针移动回到要修改的位置。
- 第15行:将缓冲区中的字节写入文件中。
- 第16行:关闭文件。
- 第17行:输出保存成功的消息。
- 第18行:程序结束。
linux c语言读取配置文件的每一行所有信息并保存
读取配置文件的每一行信息并保存可以通过以下步骤实现:
1. 打开配置文件,使用fopen()函数打开文件。
2. 逐行读取文件内容,使用fgets()函数读取每一行的内容。
3. 对每一行的内容进行处理,例如可以使用strtok()函数将每一行按照分隔符分割成不同的字段。
4. 将每个字段的值保存到一个数据结构中,例如可以使用数组或链表等数据结构。
5. 关闭文件,使用fclose()函数关闭文件。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LEN 1024
int main(int argc, char *argv[]) {
FILE *fp;
char line[MAX_LINE_LEN];
char *key, *value;
// 打开配置文件
fp = fopen("config.txt", "r");
if (fp == NULL) {
printf("Failed to open config file!");
return -1;
}
// 逐行读取文件内容
while (fgets(line, MAX_LINE_LEN, fp) != NULL) {
// 对每一行的内容进行处理
key = strtok(line, "=");
value = strtok(NULL, "=");
if (key != NULL && value != NULL) {
// 将每个字段的值保存到一个数据结构中
printf("%s=%s", key, value);
}
}
// 关闭文件
fclose(fp);
return 0;
}
```
该程序会打开名为config.txt的配置文件,并逐行读取文件内容。每一行的内容会根据等号分割成键和值两个部分,然后将它们输出到屏幕上。你可以根据自己的需求修改该程序,实现读取配置文件的每一行所有信息并保存到数据结构中。
阅读全文