C语言标准输入输出stdio.h
本文已整合到C语言标准库深度解读
文章目录
- 常量和指针
- 文件读写
- 文件和路径的其他操作
- 输入输出
stdio
绝对是C语言最让人脸熟的单词了,毕竟几乎每个c或者h文件都得include
一下。
常量和指针
#define
|
功能 | 操作系统默认 |
---|---|---|
EOF (-1)
|
文件结束符 | |
BUFSIZ 1024
|
setbuf 函数缓冲区字节数
|
__BUFSIZ__
|
FOPEN_MAX 20
|
系统可同时打开的文件数量 |
__FOPEN_MAX__
|
FILENAME_MAX 1024
|
文件名最大长度 |
__FILENAME_MAX__
|
L_tmpnam FILENAME_MAX
|
tmpnam 创建的临时文件名的最大长度
|
__L_tmpnam__
|
TMP_MAX 26
|
tmpnam 可生成最多独立文件名
|
stdio.h
中定义了三个FILE
类型的指针,
#define stdin (_REENT->_stdin)
#define stdout (_REENT->_stdout)
#define stderr (_REENT->_stderr)
其中,_REENT
在reent.h
由_impure_ptr
定义,而_impure_ptr
则为_reent
的指针。
在_reent
中定义了三个FILE
型的指针__FILE *_stdin, *_stdout, *_stderr;
,分别代表标准输入、标准输出和标准错误。
文件读写
操作一个文件的流程大致为:从fopen
打开文件,到fread, fwrite
读写文件,再到fflush
强制写入缓存,最后fclose
关闭文件;如果需要精确定位写入或读取的位置,可以通过fseek
或fgetpos
。
stdio
中提供了这些功能:一文精通C语言文件读写
而文件结构体在文件操作流程中也至关重要:FILE结构体详解
文件和路径的其他操作
流控制
输入为FILE *stream
的单参函数,EOF为文件结束标识符。
返回类型 | 功能 | |
---|---|---|
void
|
clearerr
|
清除stream的文件结束和错误标识符 |
int
|
feof
|
返回stream的文件结束标识符,若未设置,则返回0 |
long int
|
ftell
|
返回stream的文件位置,如果发生错误,则返回-1L,全局变量errno被设置为一个正值。 |
void
|
rewind
|
设置文件位置为stream的开头 |
缓存
在打开文件后还没有做其他操作的时候,可以通过ssetvbuf
来设置缓冲格式,其声明为
int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
其中stream
为文件流;buffer
为分配给用户的缓冲;size
为缓冲的字节数;mode
为缓冲模式,有三种
宏 | 值 | 类别 | 说明 |
---|---|---|---|
_IOFBF
|
0 | 全缓冲 |
输出时,数据在缓冲填满时被一次性写入 输入时,缓冲在请求输入且缓冲为空时被填充。 |
_IOLBF
|
1 | 行缓冲 |
输出时,在换行处或缓冲填满时写入数据 输入时,缓冲至下一个换行符 |
_IONBF
|
2 | 无缓冲 | 不使用缓冲。I/O操作即时写入,忽略buffer和size |
setbuf
是setvbuf
的一个特例,其中mode
为_IONBF
,size
为BUFSIZ
。
路径操作
stdio.h
还提供了两个操作文件的函数,分别是删除文件remove
和重命名文件rename
,其声明分别为:
int remove(const char *filename)
int rename(const char *old_filename, const char *new_filename)
输入输出
stdio.h
主要为输入输出提供了两组函数,一组是get
和put
,另一组是print
和scan
。
- C语言中的get和put
- printf函数详解
C语言标准输入输出stdio.h相关推荐
- stdio.h: C++输入输出操作
头文件:<stdio.h>.<cstdio> 1.通过"streams"来操作物理设备:如键盘.打印机.终端等. 2.流通过指针来连接"FILE& ...
- Ler(一) stdlib.h,stdio.h,string.h头文件
一.定位不同 1.stdlib.h是standard library标准库头文件,定位在通用工具函数. 2.stdio.h是standard input&output标准输入输出头文件,定位在 ...
- stdio.h iostream.h iostream 三者
stdio.h是C语言的东西,输入输出是这样的printf(...);, scanf(...); iostream.h是C++的东西,输入输出是这样的cout<<....;, cin> ...
- C语言stdio.h与stdlib.h的区别
一.定位不同 1.stdlib.h是standard library标准库头文件,定位在通用工具函数. 2.stdio.h是standard input&output标准输入输出头文件,定位在 ...
- c语言标准输入输出ppt,c语言输入输出语句PPT
<c语言输入输出语句PPT>由会员分享,可在线阅读,更多相关<c语言输入输出语句PPT(29页珍藏版)>请在人人文库网上搜索. 1.输入输出语句通常需要在程序运行过程中输入数据 ...
- C语言标准库stdlib.h
本文将介绍 C语言标准库<stdlib.h> 中的 宏.函数.数据类型 在最后给出一个实例程序,尽可能运用到所有函数 宏 EXIT_SUCCESS 和 EXIT_FAILURE exit函 ...
- C语言的stdio.h文件
stdio.h是C语言中的标准头文件之一,其名称全称为Standard Input and Output Header,即标准输入输出头文件.它提供了一系列输入输出函数,用于程序的输入输出操作. st ...
- [学习标准库]stdio.h
本文所总结的内容是我学习头文件cstdio与stdio.h并查阅书籍和网络所得. stdio.h,应该是跟我差不多学习经历(C-->C++-->?)的人所接触到的第一个头文件,说它是最熟悉 ...
- c++头文件:stdio.h ,cstdio ,iostream ,bits/stdc++.h
关于c++头文件 看到计蒜课里c++课程里用了这些头文件,并不懂什么意思,于是百度得出结果= - = 首先,stdio.h是c语言主要的一个头文件,是指 "standard input &a ...
- c++头文件:stdio.h ,cstdio ,iostream
转载自:低调学习C++ 首先,stdio.h是c语言主要的一个头文件,是指 "standard input & output"(标准输入输出).而到了c++里,常用iost ...
最新文章
- JavaScript初学者编程题(12)
- 语义分割--Pixel Deconvolutional Networks
- mysql面试关联查询语句_MySQL百万级、千万级数据多表关联SQL语句调优
- 智能安防市场的痛点是什么?
- Android Drawable 转化成 Bitmap
- MFC 单文档的全局变量
- 大数据领域33个预测,开启未知的2016
- IOS开发之小实例--UIImagePickerController
- php时间戳本周,php获取今天,昨天,本周,上周,本月,上月的起止时间戳
- MyBatis映射文件1(增删改、insert获取自增主键值)
- 方丹丹(1981-),女,就职于宁波市智慧城市规划标准发展研究院。
- php 弹出指定窗口大小,弹出div或者弹出新窗口的固定位置、固定大小
- 【渝粤教育】电大中专金融与税收 (2)_1作业 题库
- c语言中printf输出,C语言中printf输出的总结
- 计算机3c认证 标准,计算机3C认证怎么办理,检测标准是什么?
- 老生常谈-forwar的与redirect的区别与联系
- python常用单词
- [分块]Most Influential Pumpkin
- 常见的需求分析方法(产品篇)
- Golang 计算MD5值
热门文章
- 中国无线城市市场发展策略及未来前景规划报告2022年版
- 26 伪造ICMP数据包
- SQL Server触发器简单例子
- “几何深度学习”受爱因斯坦启示:让AI摆脱平面看到更高的维度!
- vijos 1066 树状数组
- vijos一元三次方程求解
- 拷贝相同属性的两个对象的属性-BeanUtils和PropertyUtils以及区别
- 错误解决:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to star
- 能源行业的作业成本法管理
- Visio 2010工具产品密钥