【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;
}

结语

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

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

持续更新中~!

相关推荐
南棱笑笑生16 分钟前
20251215给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时统计eth1的插拔次数
linux·c语言·开发语言·rockchip
刃神太酷啦24 分钟前
Linux 进程核心原理精讲:从体系结构到实战操作(含 fork / 状态 / 优先级)----《Hello Linux!》(6)
java·linux·运维·c语言·c++·算法·leetcode
永恒-龙啸28 分钟前
spooling假脱机输入输出模拟
c语言·开源·github
前端世界1 小时前
从“看不懂”到“能用”:一次搞清 C 语言指针数组
c语言·开发语言
发疯幼稚鬼1 小时前
归并排序与快速排序
c语言·数据结构·算法·排序算法
福尔摩斯张1 小时前
TCP协议深度解析:从报文格式到连接管理(超详细)
linux·c语言·网络·c++·笔记·网络协议·tcp/ip
光子物联单片机1 小时前
STM32单片机开发入门(十一)STM32CubeIDE下载安装及开发调试说明
c语言·stm32·单片机·嵌入式硬件·mcu
_codemonster1 小时前
自然语言处理容易混淆知识点(一)c-TF-IDF和TF-IDF的区别
c语言·自然语言处理·tf-idf
deng-c-f2 小时前
C/C++内置库函数(2):智能指针
java·c语言·c++
yuhaiqun19892 小时前
新手练 C++ HTTP 服务实操:从 “拆请求头” 到 “发 HTML 响应”
c语言·c++·程序人生·http·html·学习方法·改行学it