【C初阶】文件操作管理

news/2024/4/29 2:20:56

1.使用文件的意义

用于处理大型数据,长久性的存储数据、

2.文件的概念

文件:电脑硬盘上的存储数据的文件

分类
按照内容:程序文件、数据文件
按照形式:文本文件、二进制文件

文件名:文件的唯一标识,一般按照路径+文件名主体+后缀组成
// · 表示当前路径
//··表示上一级路径

3.流

流:是一种便于程序员对于各种输入输出设备的不同交互。
流的具体定义:Pointer to a FILE object that identifies an input stream.

标准流:属于流的一种,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)
FILE:是C语言内置结构体,用来在程序运行时候在内存开辟一块空间存放文件结构体变量,对里面各种参数进行记录以便来维护文件。
FILE*:便于维护文件结构体的指针。

在这里插入图片描述

4.文件的打开与关闭

文件打开函数:fopen
LINK
文件关闭函数:fclose
LINK

5.文件的读写

文件可以用程序进行读写操作,为了便于文件读写,C语言为我们提供了一系列库函数:
在这里插入图片描述
在这里插入图片描述

eg:fgetc与fputc
LINK
LINK

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{//创建test文件FILE* pf = fopen("test.txt", "w");fclose(pf);pf = NULL;//将10086写到test文件中FILE* pwrite = fopen("test.txt", "w");fputc('1', pwrite);fputc('0', pwrite);fputc('0', pwrite);fputc('8', pwrite);fputc('6', pwrite);fclose(pwrite);pwrite = NULL;//将test文件内容读到屏幕上FILE* pread = fopen("test.txt", "r");fprintf(stdout,"%c", fgetc(pread));fprintf(stdout,"%c", fgetc(pread));fprintf(stdout,"%c", fgetc(pread));fprintf(stdout,"%c", fgetc(pread));fprintf(stdout,"%c", fgetc(pread));fclose(pread);pread = NULL;return 0;
}

为了便于文件读写,C还提供了可以在文件中移动光标位置的库函数:fseek LINK
因为这个函数涉及到一些偏移量的问题,C也提供了一个专门计算偏移量的库函数:
ftell LINK

6.文件读写结束的判定

feof函数LINK
ferror函数LINK
rewindLINK

7.文件缓冲区

在这里插入图片描述

#include <stdio.h>
#include <windows.h>
//VS2019 WIN11环境测试
int main()
{
FILE*pf = fopen("test.txt", "w");
fputs("abcdef", pf);//先将代码放在输出缓冲区
printf("睡眠10秒-已经写数据了,打开test.txt⽂件,发现⽂件没有内容\n");
Sleep(10000);
printf("刷新缓冲区\n");
fflush(pf);//刷新缓冲区时,才将输出缓冲区的数据写到⽂件(磁盘)
//注:fflush 在⾼版本的VS上不能使⽤了
printf("再睡眠10秒-此时,再次打开test.txt⽂件,⽂件有内容了\n");
Sleep(10000);
fclose(pf);
//注:fclose在关闭⽂件的时候,也会刷新缓冲区
pf = NULL;
return 0;

EOF

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

web学习笔记(三十三)

目录 1.严格模式 1.1严格模式的概念&#xff1a; 1.2严格模式在语义上更改的地方&#xff1a; 1.3如何开启严格模式 1.4严格模式应用上的变化 2.原型链 1.严格模式 1.1严格模式的概念&#xff1a; 严格模式有点像es5向es6过渡而产生的一种模式&#xff0c;因为es6的语法…

PDF Shaper Professional / Premium:您的全方位PDF转换利器

在数字化时代的浪潮中&#xff0c;PDF格式因其跨平台、易传输的特性&#xff0c;成为我们日常工作与学习中不可或缺的文件格式。然而&#xff0c;PDF文件的编辑与转换却常常成为我们的难题。这时&#xff0c;一款高效、便捷的PDF转换软件就显得尤为重要。而PDF Shaper Professi…

记事小本本

记事小本本 实现效果 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

MAC M芯片 Anaconda安装

Anaconda安装 1.M芯片下载AnaConda 1.M芯片下载AnaConda https://www.anaconda.com/download 安装完成 conda的版本是24.1.2

从0到1入门C++编程——12 演讲比赛流程管理系统

文章目录 一、创建类并显示菜单二、退出管理系统三、开始演讲比赛四、查看往届记录五、清空比赛记录六、案例源代码 演讲比赛流程管理系统 比赛规则&#xff1a;演讲比赛共有12个人参加&#xff0c;比赛分两轮进行&#xff0c;第一轮为淘汰赛&#xff0c;第二轮为决赛。每名选手…

spring-boot操作elasticsearch

一、环境准备 springboot与elasticsearch的更新都非常快&#xff0c;为了避免兼容性问题&#xff0c;要注意下选择的版本问题。具体的可参考官网 --> springboot与elasticsearch版本兼容性 1.1导入依赖 <dependencies><dependency><groupId>org.spring…