当前位置: 首页 > news >正文

口碑好的聊城网站建设设计软件网站

口碑好的聊城网站建设,设计软件网站,最新手机排行榜2021,宝安中心医院是什么级别C语言文件操作学习笔记 目录 文件基本概念文件的打开与关闭文件的顺序读写文件的随机读写常用文件操作函数总结 文件基本概念 1. 什么是文件? 文件:存储在外部存储器(如硬盘)上的数据集合。输入输出流:数据像流水一…

C语言文件操作学习笔记


目录

  • 文件基本概念
  • 文件的打开与关闭
  • 文件的顺序读写
  • 文件的随机读写
  • 常用文件操作函数
  • 总结

文件基本概念

1. 什么是文件?

  • 文件:存储在外部存储器(如硬盘)上的数据集合。
  • 输入输出流:数据像流水一样从一处流向另一处,C语言将文件视为字符(字节)序列。

2. 文件分类

类型特点示例
文本文件以ASCII码形式存储,可读性强.txt, .c
二进制文件以二进制形式存储,节省空间.dat, .exe

3. 文件指针

  • FILE结构体:存储文件的详细信息(如文件名、状态、当前位置等)。
  • 定义文件指针
    FILE *fp;  // fp指向文件缓冲区的首地址
    

4. 文件缓冲区

  • 缓冲文件系统:系统为每个文件开辟内存缓冲区,数据先写入缓冲区,满后再写入外存。

文件的打开与关闭

1. 打开文件:fopen()

FILE *fopen(const char *文件名, const char *打开模式);
文件打开模式
模式说明
"r"只读,文件不存在则失败
"w"只写,文件存在则清空,不存在则创建
"a"追加写,文件不存在则创建
"r+"读写,文件必须存在
"w+"读写,文件存在则清空,不存在则创建
"a+"读与追加写,不存在则创建
"b"二进制模式(需与其他模式组合,如"rb", "wb"
示例:安全打开文件
FILE *fp;
if ((fp = fopen("test.txt", "r")) == NULL) {printf("无法打开文件!\n");exit(0);  // 终止程序
}

2. 关闭文件:fclose()

int fclose(FILE *fp);  // 成功返回0,失败返回EOF(-1)

文件的顺序读写

1. 字符读写函数

函数功能示例
fputc(c, fp)写入一个字符到文件fputc('A', fp);
fgetc(fp)从文件读取一个字符char c = fgetc(fp);
示例:复制文件内容
#include <stdio.h>
int main() {FILE *in = fopen("input.txt", "r");FILE *out = fopen("output.txt", "w");char c;while ((c = fgetc(in)) != EOF) {fputc(c, out);}fclose(in);fclose(out);return 0;
}

2. 字符串读写函数

函数功能示例
fgets(s, n, fp)从文件读取字符串(最多读n-1字符)fgets(buffer, 100, fp);
fputs(s, fp)将字符串写入文件fputs("Hello World", fp);

文件的随机读写

1. 文件指针定位函数

函数功能示例
fseek(fp, offset, 起始位置)移动文件指针到指定位置fseek(fp, 100L, SEEK_SET);
rewind(fp)将文件指针重置到文件开头rewind(fp);
ftell(fp)返回当前指针位置(字节数)long pos = ftell(fp);
起始位置常量
  • SEEK_SET(0):文件开头
  • SEEK_CUR(1):当前位置
  • SEEK_END(2):文件末尾

2. 示例:随机读取学生数据

#include <stdio.h>
struct Student {char name[20];int age;
};int main() {FILE *fp = fopen("students.dat", "rb");struct Student s;// 读取第3个学生的数据(索引从0开始)fseek(fp, 2 * sizeof(struct Student), SEEK_SET);fread(&s, sizeof(struct Student), 1, fp);printf("姓名:%s,年龄:%d\n", s.name, s.age);fclose(fp);return 0;
}

常用文件操作函数

1. 数据块读写函数

函数功能示例
fread(buffer, size, count, fp)从文件读取数据块fread(&stu, sizeof(Student), 1, fp);
fwrite(buffer, size, count, fp)向文件写入数据块fwrite(&stu, sizeof(Student), 1, fp);

2. 文件结束判断:feof()

while (!feof(fp)) {  // 循环直到文件结束// 读取操作
}

总结

关键知识点

  1. 文件操作步骤:打开 → 操作 → 关闭。
  2. 打开模式"r""w""a"等需根据需求选择。
  3. 顺序读写:逐个字符或字符串处理。
  4. 随机读写:通过fseek定位指针,直接访问任意位置。
  5. 二进制文件:适合存储结构体等复杂数据。

注意事项

  • 错误处理:始终检查文件是否成功打开。
  • 缓冲区刷新:关闭文件前确保数据写入外存。
  • 指针管理:避免越界操作导致数据损坏。

练习题:编写程序,从键盘输入5个学生的信息(姓名、年龄),保存到文件students.dat中,并读取第3个学生的信息显示在屏幕上。

http://www.dtcms.com/a/474579.html

相关文章:

  • 五种编程语言比较选择最适合您项目的工具
  • 商城网站开发项目分工公司网页背景图
  • 第六章:并发编程—Go的杀手锏
  • 网站建设内部流程图定制开发网站 推广
  • 衡石科技HENGSHI SENSE 6.0:重塑企业级BI的技术范式
  • 西安便宜网站建设品牌网十大品牌排行榜
  • OpenSIPS call_center 模块测试
  • 深度学习周报(10.6~10.12)
  • 易语言实现多文件选择对话框模块详解
  • 电子商务网站建设与综合实践如何翻译wordpress主题
  • Java基础--集合复习知识点
  • spdlog讲解
  • 怎样用vps做网站超级优化
  • 下载接口返回的数据流格式文件
  • 关于网站建设的合同范本正规太原软件开发公司有哪些
  • Python反射机制通俗详解(新手友好版)
  • 网站开发要源码多少钱wordpress 静态资源加速
  • 【多线程】阻塞等待(Blocking Wait)(以Java为例)
  • 公众号做 视频网站商品行情软件下载
  • Kubernetes环境下Nginx代理Nacos服务请求故障诊断
  • Linux 文件权限详解与实操命令
  • 1Docker镜像与容器,目录挂载和卷映射的选择
  • 06_k8s数据持久化
  • c 教学网站开发网页设计尺寸大小规范
  • 第一章:AI大模型基本原理及API应用——第一小节
  • 购物便宜的网站有哪些vivo即将发布的新手机
  • 超级玛丽demo9
  • 汕头站扩建什么时候完成做单屏网站 高度是多少
  • 【Swift】LeetCode 1. 两数之和
  • CI/CD流水线实战:从零搭建到高效部署