- 前言
- 1. 文件打开模式
- 2. 示例代码
- 2.1 打开和关闭文件
- 2.2 读写文件
- 2.3 二进制文件操作
 
- 结语

 
#include<GUIQU.h>
int main
{
上期回顾: 【C语言回顾】动态内存管理
个人主页:C_GUIQU
专栏:【C语言学习】
return 一键三连;
}
前言
各位小伙伴大家好!上期小编给大家讲解了C语言中的动态内存管理,接下来我们讲解一下文件操作!
在C语言中,文件操作是程序设计中非常重要的一部分。C语言提供了一套标准的输入输出库(stdio.h),通过这个库,我们可以实现文件的读取、写入、修改等操作。
以下是C语言文件操作的一些基本函数和它们的简要说明:
fopen():打开一个文件,返回一个指向该文件的文件指针。
fclose():关闭一个已经打开的文件。
fprintf():向文件中写入格式化的数据。
fscanf():从文件中读取格式化的数据。
fread():从文件中读取一块数据。
fwrite():向文件中写入一块数据。
fseek():设置文件读写位置。
ftell():返回当前文件读写位置。
rewind():将文件读写位置设置到文件开头。
feof():检测是否到达文件末尾。
1. 文件打开模式
在fopen()函数中,我们可以指定文件的打开模式,常见的模式有:
- r:只读模式打开文件,文件必须存在。
- w:写入模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
- a:追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。
- r+:读写模式打开文件,文件必须存在。
- w+:读写模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
- a+:读写追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。
2. 示例代码
2.1 打开和关闭文件
#include <stdio.h>
int main() {
    FILE *fp;
    fp = fopen("example.txt", "w"); // 以写入模式打开文件
    if (fp == NULL) {
        perror("Error opening file");
        return -1;
    }
    fclose(fp); // 关闭文件
    return 0;
}
2.2 读写文件
#include <stdio.h>
int main() {
    FILE *fp;
    char str[] = "Hello, world!";
    
    fp = fopen("example.txt", "w"); // 以写入模式打开文件
    fprintf(fp, "%s", str); // 向文件中写入字符串
    fclose(fp); // 关闭文件
    fp = fopen("example.txt", "r"); // 以读取模式打开文件
    char buffer[100];
    fgets(buffer, 100, fp); // 从文件中读取字符串
    printf("%s", buffer); // 输出读取的字符串
    fclose(fp); // 关闭文件
    return 0;
}
2.3 二进制文件操作
#include <stdio.h>
typedef struct {
    int id;
    char name[20];
} Person;
int main() {
    Person people[2] = {
        {1, "Alice"},
        {2, "Bob"}
    };
    FILE *fp = fopen("people.bin", "wb"); // 以二进制写入模式打开文件
    fwrite(people, sizeof(Person), 2, fp); // 向文件中写入数据
    fclose(fp); // 关闭文件
    Person new_people[2];
    fp = fopen("people.bin", "rb"); // 以二进制读取模式打开文件
    fread(new_people, sizeof(Person), 2, fp); // 从文件中读取数据
    fclose(fp); // 关闭文件
    for (int i = 0; i < 2; i++) {
        printf("ID: %d, Name: %s\n", new_people[i].id, new_people[i].name);
    }
    return 0;
}
结语
以上就是小编对文件操作的详细讲解。
 如果觉得小编讲的还可以,还请一键三连。互三必回!
 持续更新中~!






















