趣学 C 语言(十二)—— 文件操作
对于 C 语言而言,无论是标准输入 stdin,还是标准输出 stdout,还是标准错误输出 stderr,本质上都是一种文件操作,只不过读写的文件变成了控制台(console),或者说 stdin/stdout/stderr 是一种特殊的文件流,这三者出现的地方都可替换为相应的文件操作。
\begin{split} &\text{printf(const char *, ...) == fprintf(stdout, const char *, ...)}\\ &\text{scanf(const char*, ...) == fscanf(stdin, const char *, ...)} \end{split}
控制台是特殊的文件,理论上,凡是针对控制台的读写操作,都是转化为对相应文件流的文件操作,控制台输入 ⇒ stdin,控制台输出 ⇒ stdout,控制台错误输出 ⇒ stderr。
FILE 结构体
#ifndef _FILE_DEFINED
struct _iobuf {char *_ptr;int _cnt;char *_base;int _flag;int _file;int _charbuf;int _bufsiz;char *_tmpfname;};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
文件缓冲系统
C 语言对文件的操作使用了缓冲文件系统,所谓缓冲文件系统是指系统自动在内存之中,为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区之后才一起送到磁盘区。读取也是如是。
如果想要即可写入到磁盘,
fclose(fp);
关闭文件,表示文件写入操作已经完成。
如果在 fclose 关闭文件之后,还想继续写入的话,就需再次打开,十分不便,有时我们需要对文件进行多次操作,但我们不希望每次操作都关闭文件,此时我们可利用另一个文件操作,
fflush(fp);
刷新缓冲区,将缓冲区的数据写入磁盘上的文件。
趣学 C 语言(十二)—— 文件操作相关推荐
- 零基础学lua第十天---文件操作
零基础学lua第十天-文件操作 一.前言 每个编程语言和都少不了对文件操作,lua中操作文件的方法非常简单,而且文件和输入输出操作都是使用的同一个库,可以说是相当方便了,下面我们来看下吧. 二.读取文 ...
- 跟我学Android之十二 文件解析与处理
视频课:[免费]零基础学安卓Android移动开发 本章内容 第1节 File Explorer操作 第2节 SharedPreferences 第3节 普通文件操作 第4节 SD卡读写操作 ...
- c语言文件嚏怎么写,巩固C语言(十二)----文件加解密
一 文件的简单加解密----按照字节简单加减进行加解密 #define _CRT_SECURE_NO_WARNINGS #include #include //按照字节的方式进行加解密 //加密 vo ...
- 趣学 C 语言(二)—— typedef 与 #define
#define:宏文本替换(其实 #define 宏定义十分十分简单,就是做文本替换): typedef:彻底的封装类型: (1) 可用其他类型说明符对宏类型名进行拓展,但对 typedef 所定义的 ...
- 零基础入门学Python(十二)—— 魔法方法(下)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(下) 1. 构造和析构 2. 算术运算 3. 简单定制 4. 属性访问 5. 描述 ...
- 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )
文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...
- 零基础入门学Python(十二)—— 魔法方法(上)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...
- 跟着实例学Go语言(二)
本教程全面涵盖了Go语言基础的各个方面.一共80个例子,每个例子对应一个语言特性点,既适合新人快速上手,也适合工作中遇到问题速查知识点. 教程代码示例来自go by example,文字部分来自本人自 ...
- C语言详解文件操作(一):文件操作基础概念、按照字符、按照行块、按照格式化和随机位置读写文件
文章目录 一.文件操作基础概念 二.文件读写:按照字符方式读写 三.文件读写:按行和块读写 四.文件读写:格式化和随机位置 一.文件操作基础概念 C语言中的文件操作的好处: 一个文件通常是 ...
- C语言字符串、文件操作常用操作函数,
C语言字符串常用操作函数 C语言字符串.文件操作常用操作函数 字符串输出 - puts() 字符串输入 - gets() 字符串比较 - strcmp() 字符串复制 - strcpy() 字符串连接 ...
最新文章
- SVM进行手写数字识别
- 机器学习--Hoeffding Inequality--界定概率边界
- Windows操作系统产品名与内部版本号的对应(windows版本号)
- python都学什么啊-你们都是怎么学 Python 的?
- Linux驱动之平台设备
- TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录
- 20141126-解决联网问题-笔记
- C/C++中如何使用typedef给函数指针取别名使其更具可读性
- 【redis】redisDesktopManager之redis可视化客户端 界面介绍
- [转载] python3安装superset踩坑解决过程
- 不是所有的U盘都能作为启动盘
- 页面加载完后直接弹窗或者跳转页面
- google手机连接Wifi后总会提示无法连接互联网问题的解决
- 【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-7首页界面
- 第3章 从零开始的计算机系统
- 做网站需要用到哪些开发软件——心得分享
- 深扒程序员外包,为啥我不建议你去外包公司?
- 使用计算机用眼卫生,长期用电脑致眼睛干涩 注意用眼卫生
- Filament 渲染引擎剖析 之 创建渲染对象 1
- 基于cc2530获取ds18b20温度值
热门文章
- 1025. 除数博弈
- 洛谷P3879 [TJOI2010] 阅读理解 哈希Hash解法
- 面向对象编程方法-抽象
- 【OpenCV】透视变换 Perspective Transformation
- 替换分隔符 ^p, 或者是回车
- [转帖]2016年时的新闻:ASP.NET Core 1.0、ASP.NET MVC Core 1.0和Entity Framework Core 1.0
- 如何用SQL为每一行均产生一个随机数
- 对象流--对象的序列化
- 【Django】--Models 和ORM以及admin配置
- 选数 2002年NOIP全国联赛普及组