【C语言回顾】文件操作

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


#include<GUIQU.h>
int main
{
上期回顾: 【C语言回顾】动态内存管理
个人主页:C_GUIQU
专栏:【C语言学习】
return 一键三连;
}

前言

各位小伙伴大家好!上期小编给大家讲解了C语言中的动态内存管理,接下来我们讲解一下文件操作!

在C语言中,文件操作是程序设计中非常重要的一部分。C语言提供了一套标准的输入输出库(stdio.h),通过这个库,我们可以实现文件的读取、写入、修改等操作。

以下是C语言文件操作的一些基本函数和它们的简要说明:

  1. fopen():打开一个文件,返回一个指向该文件的文件指针。
  2. fclose():关闭一个已经打开的文件。
  3. fprintf():向文件中写入格式化的数据。
  4. fscanf():从文件中读取格式化的数据。
  5. fread():从文件中读取一块数据。
  6. fwrite():向文件中写入一块数据。
  7. fseek():设置文件读写位置。
  8. ftell():返回当前文件读写位置。
  9. rewind():将文件读写位置设置到文件开头。
  10. feof():检测是否到达文件末尾。

1. 文件打开模式

fopen()函数中,我们可以指定文件的打开模式,常见的模式有:

  • r:只读模式打开文件,文件必须存在。
  • w:写入模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
  • a:追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。
  • r+:读写模式打开文件,文件必须存在。
  • w+:读写模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
  • a+:读写追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。

2. 示例代码

2.1 打开和关闭文件

c 复制代码
#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 读写文件

c 复制代码
#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 二进制文件操作

c 复制代码
#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;
}

结语

以上就是小编对文件操作的详细讲解。

如果觉得小编讲的还可以,还请一键三连。互三必回!

持续更新中~!

相关推荐
啟明起鸣6 小时前
【网络编程】简易的 p2p 模型,实现两台虚拟机之间的简单点对点通信,并以小见大观察 TCP 协议的具体运行
c语言·网络·tcp/ip·p2p
秋说11 小时前
【PTA数据结构 | C语言版】线性表循环右移
c语言·数据结构·算法
芯岭技术12 小时前
MS32C001-C单片机,32位ARM M0+内核,宽电压、低功耗、小封装。
c语言·arm开发·单片机
minji...14 小时前
数据结构 算法复杂度(1)
c语言·开发语言·数据结构·算法
秋说15 小时前
【PTA数据结构 | C语言版】在顺序表 list 的第 i 个位置上插入元素 x
c语言·数据结构·list
楼田莉子16 小时前
数据学习之队列
c语言·开发语言·数据结构·学习·算法
秋说16 小时前
【PTA数据结构 | C语言版】返回单链表 list 中第 i 个元素值
c语言·数据结构·list
双叶83617 小时前
(C++)任务管理系统(正式版)(迭代器)(list列表基础教程)(STL基础知识)
c语言·开发语言·数据结构·c++·list
七七七七0717 小时前
类与对象【下篇】-- 关于类的其它语法
c语言·开发语言·c++
削好皮的Pineapple!17 小时前
C语言模块化编程思维以及直流电机控制(第四天)
c语言·开发语言·单片机