ferror,clearerr和EOF含义
1.我们并不是实时操纵文件,也不是实时生效,它依赖于缓冲区。非缓冲模式编程与常规区别,就是实时与不实时的区别。
2.//fgetc fputc, fgets fputs, fgetwc fputwc, fgetws fputws, fread fwrite这些函数都是缓冲区编程,当对数据要求非常高的时候,不能用这种模式,比如银行程序,存取钱不实时操作能行吗?
3.EOF有两种含义:结束和异常
//缓冲区生效:fclose,fflush缓冲区
//EOF有两种含义:结束, 异常 #include <stdio.h> void main()
{
FILE *pf = fopen("path", "w+"); //w模式不可写,
fputs("hello world!", pf); //没有生效,刷新清空缓冲区,或者手动关闭文件,才生效。
fflush(pf);
rewind(pf);
int ch = fgetc(pf);
if (ch == EOF)
{
if (feof(pf))
{
printf("end");
clearerr(pf); //重置文件流状态,可以取消异常。意义不大,就是让指针退回了一步,打了一个空格。
}
if (ferror(pf))
{
printf("ferror");
clearerr(pf);//重置文件流,文件指针不再前进。
} }
- scanf("%d%d",&a,&b)!=EOF; scanf返回的是读入数据的数目。
- 如果a&&b都没有读入,那么上面表达式的结果为0(若a没有读入,则直接放弃b的读入);
- 如果遇到错误或者文件结尾,那么上面表达式的结果为EOF,对应的有符号数时-1;
- 如果遇到Crrl+Z,那么上面表达式的结果为EOF,对应的有符号数时-1;
ferror,clearerr和EOF含义的更多相关文章
- 关于EOF,转自新浪微博
本文转自http://blog.sina.com.cn/s/blog_7714171f0101798y.html EOF 是 End Of File 的缩写. 在C语言中,它是在标准库中定义的一个宏. ...
- PILE读书笔记_标准I/O
在学习和分析标准I/O库的同时, 可以重点与Linux的I/O系统调用进行比较. stdin. stdout和stderr都是FILE类型的文件指针, 是由C库静态定义的, 直接与文件描述符0. 1和 ...
- C编程经验总结5(剧终)
Prolog是AI编程语言 Git(分布式) svn(集中式) commit(委托,犯罪) patch补丁) merge(融入) repository(仓库) Ctrl+s(保存) r ...
- C语言文件读写总结
主要有四种: 1.文件的字符输入输出函数 fgetc fputc2.文件的字符串输入输出函数 fgets fputs3.文件的格式化输入输出函数 fscanf fprintf4.文件的数据块输入输出函 ...
- stdio - 标准输入输出库函数
SYNOPSIS 总览 #include <stdio.h> FILE *stdin; FILE *stdout; FILE *stderr; DESCRIPTION 描述 标注 I/O ...
- C错误异常处理,异常处理
预处理器标识#error的目的是什么啊? 指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编 ...
- linux自动备份oracle数据库
#此脚本只备份数据表,而且为了方便恢复数据是做的单表逐个备份#在写脚本过程中遇到的报错均加入了解决方案的链接(虽然错误代码没有贴出来)#最终将在脚本所在目录生成年月日-时分的目录,目录下为表名.dmp ...
- C语言文件操作函数之ferror & feof & clearerr
这些函数都是和文件读写时发生错误有关,下面一一分析: 1:ferror 原型:int ferror(FILE * fp) 作用:测试一个文件流是否被设置了错误标识符,如果是返回非 0 整数,否则返回 ...
- clearerr, feof, ferror, fileno - 检查以及重置流状态
总览 (SYNOPSIS) #include <stdio.h> void clearerr(FILE *stream); int feof(FILE *stream); int ferr ...
随机推荐
- MongoDB的安装与配置
一.安装包安装: 1.安装 #1.安装路径为D:\MongoDB,将D:\MongoDB\bin目录加入环境变量 #2.新建目录与文件D:\MongoDB\data\dbD:\MongoDB\log\ ...
- Gym 101612C Consonant Fencity
原题传送门 题意:给定一个只含小写字母的字符串,假设aeiouyw为元音字母,现在要把一些字母变为大写,要求相同字母的大小写必须相同,统计变化后的字符串中有多少对相邻.同为辅音字母且大小写不一样的字符 ...
- [bzoj3910] 火车
一开始看错题了... 求经过的道路数量就求个lca,把路径上的点置为已经过的话,可以写一个并查集,把某个点往上连续已经过的一段点并起来. #include<cstdio> #include ...
- [bzoj3203][Sdoi2013]保护出题人
人生第一道三分?... 把进攻序列里的前i只僵尸看成一个点,横坐标是第i只僵尸到达的时间,纵坐标是这i只僵尸的血量总和..就是说植物必须在这段时间内输出这些伤害..那么单位时间的输出伤害就是斜率了. ...
- android小说阅读源码、bilibili源码、MVP新闻源码等
Android精选源码 一款基于 MVP+RxJava2+Retrofit2 的应用--熊猫眼 android 五子棋源码分享 android实现全国地图点击效果 android实现立体图案绘制的代码 ...
- IDEA for Mac注册码使用
尼玛,一不注意把磁盘抹掉了,重新下idea发现 之前的破解方法失效了 之前所有的 idea 授权服务器已遭JetBrains封杀,所以重新下载后 用之前的方法已经然并卵了,苦苦google后,发现新大 ...
- 怎么去掉织梦网站首页带的index.html/index.php
方法1. 1)在空间面板里面找到默认首页设置: 我们是需要去掉index.html,这时我们只需要把index.html这个把它移到最顶级去就行,然后点击确定,在打开网站刷新下,就基本可以解决了! 其 ...
- JS和H5做一个音乐播放器,附带源码
http://mp.weixin.qq.com/s/KpXT9X46AMlUVXQvpHuXGQ 效果图: 实现的功能 1.首页 2.底部播放控件 3.播放页面 4.播放列表 5.排行榜 6.音乐搜索 ...
- 宝塔linux面板.txt
安装命令: yum -y install screen wget && screen -S bt wget -O install.sh http://103.224.251.79:58 ...
- Html5+js测试题【完整版】
一.闭包的理解:使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露.闭包三个特性: 1.函数嵌套函数 ; 2 ...