对于 C 语言而言,无论是标准输入 stdin,还是标准输出 stdout,还是标准错误输出 stderr,本质上都是一种文件操作,只不过读写的文件变成了控制台(console),或者说 stdin/stdout/stderr 是一种特殊的文件流,这三者出现的地方都可替换为相应的文件操作。

printf(const char *, ...) == fprintf(stdout, const char *, ...)scanf(const char*, ...) == fscanf(stdin, const char *, ...)

\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 语言(十二)—— 文件操作相关推荐

  1. 零基础学lua第十天---文件操作

    零基础学lua第十天-文件操作 一.前言 每个编程语言和都少不了对文件操作,lua中操作文件的方法非常简单,而且文件和输入输出操作都是使用的同一个库,可以说是相当方便了,下面我们来看下吧. 二.读取文 ...

  2. 跟我学Android之十二 文件解析与处理

    视频课:[免费]零基础学安卓Android移动开发 本章内容 第1节  File Explorer操作 第2节  SharedPreferences 第3节  普通文件操作 第4节  SD卡读写操作 ...

  3. c语言文件嚏怎么写,巩固C语言(十二)----文件加解密

    一 文件的简单加解密----按照字节简单加减进行加解密 #define _CRT_SECURE_NO_WARNINGS #include #include //按照字节的方式进行加解密 //加密 vo ...

  4. 趣学 C 语言(二)—— typedef 与 #define

    #define:宏文本替换(其实 #define 宏定义十分十分简单,就是做文本替换): typedef:彻底的封装类型: (1) 可用其他类型说明符对宏类型名进行拓展,但对 typedef 所定义的 ...

  5. 零基础入门学Python(十二)—— 魔法方法(下)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(下) 1. 构造和析构 2. 算术运算 3. 简单定制 4. 属性访问 5. 描述 ...

  6. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

  7. 零基础入门学Python(十二)—— 魔法方法(上)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...

  8. 跟着实例学Go语言(二)

    本教程全面涵盖了Go语言基础的各个方面.一共80个例子,每个例子对应一个语言特性点,既适合新人快速上手,也适合工作中遇到问题速查知识点. 教程代码示例来自go by example,文字部分来自本人自 ...

  9. C语言详解文件操作(一):文件操作基础概念、按照字符、按照行块、按照格式化和随机位置读写文件

    文章目录 一.文件操作基础概念 二.文件读写:按照字符方式读写 三.文件读写:按行和块读写 四.文件读写:格式化和随机位置 一.文件操作基础概念 C语言中的文件操作的好处:       一个文件通常是 ...

  10. C语言字符串、文件操作常用操作函数,

    C语言字符串常用操作函数 C语言字符串.文件操作常用操作函数 字符串输出 - puts() 字符串输入 - gets() 字符串比较 - strcmp() 字符串复制 - strcpy() 字符串连接 ...

最新文章

  1. SVM进行手写数字识别
  2. 机器学习--Hoeffding Inequality--界定概率边界
  3. Windows操作系统产品名与内部版本号的对应(windows版本号)
  4. python都学什么啊-你们都是怎么学 Python 的?
  5. Linux驱动之平台设备
  6. TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录
  7. 20141126-解决联网问题-笔记
  8. C/C++中如何使用typedef给函数指针取别名使其更具可读性
  9. 【redis】redisDesktopManager之redis可视化客户端 界面介绍
  10. [转载] python3安装superset踩坑解决过程
  11. 不是所有的U盘都能作为启动盘
  12. 页面加载完后直接弹窗或者跳转页面
  13. google手机连接Wifi后总会提示无法连接互联网问题的解决
  14. 【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-7首页界面
  15. 第3章 从零开始的计算机系统
  16. 做网站需要用到哪些开发软件——心得分享
  17. 深扒程序员外包,为啥我不建议你去外包公司?
  18. 使用计算机用眼卫生,长期用电脑致眼睛干涩 注意用眼卫生
  19. Filament 渲染引擎剖析 之 创建渲染对象 1
  20. 基于cc2530获取ds18b20温度值

热门文章

  1. 1025. 除数博弈
  2. 洛谷P3879 [TJOI2010] 阅读理解 哈希Hash解法
  3. 面向对象编程方法-抽象
  4. 【OpenCV】透视变换 Perspective Transformation
  5. 替换分隔符 ^p, 或者是回车
  6. [转帖]2016年时的新闻:ASP.NET Core 1.0、ASP.NET MVC Core 1.0和Entity Framework Core 1.0
  7. 如何用SQL为每一行均产生一个随机数
  8. 对象流--对象的序列化
  9. 【Django】--Models 和ORM以及admin配置
  10. 选数 2002年NOIP全国联赛普及组