fscanf的返回值未成功输入的元素个数 .xml
pre{
line-height:1;
color:#38ede1;
background-color:#5b2814;
font-size:16px;}.sysFunc{color:#008080;font-style:italic;font-weight:bold;}
.selfFuc{color:#008080;}
.bool{color:#952fa4;}
.condition{color:#ca5cb9;font-weight:bold;}
.key{color:#85d7e6;}
.var{color:#a6caf0;font-style:italic;}
.Digit{color:#c0c0c0;font-weight:bold;}
.includePre{color:#e1ed38;}
.operator {color:#6de9b8;font-weight:bold;}
test.txt 中保存的为:
1
2
3
4
5
程序
int i,j,k;
FILE *fp=fopen("e://test.txt","r");
if (fp==NULL)
{
//return FALSE;
}
while (!feof(fp))
{
j=fscanf(fp,"%d%d",&i,&k);
cout<<i<<'/t'<<k<<'/t'<<j<<endl;
}
输出结果为:
1 2 2
3 4 2
5 4 1
OK
若是将test.txt中的内容改为: 1 2 3 4
则输出结果为:
1 2 2
3 4 2
3 4 -1
OK
fscanf() 在进行第一次转换之前就已经到了末尾或者有读错误时 则其返回值为EOF(-1), 否则得话,则返回其成功转换的元素数目。
可以根据这个性质,来控制文件读写。
MSDN中对返回值的解释为:
Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf and fwscanf.
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
feof() 标志 在读完最后一个元素后,仍是正常的,只有再试图读新的元素时,才知道到了末尾,这时才修改状态
读文件时,要清楚这个判断结尾的原理,否则很容易多读一写内容
例子:
下面的程序
[c-sharp] view plaincopy
while (!feof(fp)) {
if (fscanf(fp, "%lf", &x) == 1)// 返回值为1时正确
{
。。。。。//正确读入时的处理情况
}
}
fclose(fp);
本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。
fscanf的返回值未成功输入的元素个数 .xml的更多相关文章
- ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。 将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除。
官方文档:https://msdn.microsoft.com/zh-cn/library/system.obsoleteattribute(v=vs.110).aspx 备注 ObsoleteAtt ...
- PYTHON-错误-函数有返回值未接收导致替换不成功
#1.有返回值,没有赋值,替换不成功 cxj = 'guapi' cxj.replace(cxj,'2b') print(cxj) #2.有返回值,赋值,替换成功 cxj = 'guapi' cxj ...
- 从返回值未报错得到的对于java finally理解
不多说了,直接看图 这个代码来自<深入理解java虚拟机(第二版)>,我在eclipse中编辑的,但是没有报错,一般来说,没有返回值,eclipse都会有个提示或者报错啥的,但是这个没有, ...
- 用jquery的ajax方法获取不到return返回值
如果jquery中,获取不到ajax返回值. 两个错误写法会导致这种情况:1.ajax未用同步 2.在ajax方法中直接return返回值. 下面列举了三种写法,如果想成功获取到返回值,参考第三种写法 ...
- WebService,ASMX文件使用XML格式数据传递参数、验证与获取XML格式返回值的一种方式
1:首先WebService方法定义,每个方法定义两个参数,一个用于验证权限,string格式的XML文本用于传输数据.最终目的实现,WebService方法,验证权限,获取XML数据,处理之后返回X ...
- Mybatis执行sql(insert、update、delete)返回值问题
数据库:Mysql 在使用mybatis的过程中对执行sql的返回值产生疑问,顺手记录一下. 结论: insert: 插入n条记录,返回影响行数n.(n>=1,n为0时实际为插入失败) up ...
- ThinkPHP中数据库操作返回值总结
转自:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html Thinkphp中的Think\ ...
- 【转】ThinkPHP中数据库操作返回值总结
Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Crea ...
- 关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
因为msdn中说返回受影响的行数: Executes a Transact-SQL statement against the connection and returns the number of ...
随机推荐
- c# 串行【序列化】和解串【反序列化】
C# 串行[序列化]和解串[反序列化] 一. 什么是序列化和反序列话呢? 相信我们做程序的都会遇到这种情况,需要将C#中某一个结构很复杂的类的对象存储起来,或者通过网路传输到远程的客户端程序中去, ...
- MySQL:创建、修改和删除表
其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...
- 在cmd中登录ftp服务器
http://jingyan.baidu.com/article/0bc808fc8778ee1bd485b93b.html C:\Users\Administrator>ftpftp> ...
- 《OD大数据实战》驴妈妈旅游网大型离线数据电商分析平台
一.环境搭建 1. <OD大数据实战>Hadoop伪分布式环境搭建 2. <OD大数据实战>Hive环境搭建 3. <OD大数据实战>Sqoop入门实例 4. &l ...
- 安装hadoop
生成yum源 cd /var/ftp/pub/cdh/5 createrepo --update . 从节点 yum clean all 配置yum库 /etc/yum.repos.d # cat / ...
- 【第二篇】.NET用NPOI读取Excel表格并在页面预览
博主用的是npoi2.0.1,支持.xls也支持.xlsx 直接上代码吧. <table class="table table-bordered table-striped" ...
- [转] POJ计算几何
转自:http://blog.csdn.net/tyger/article/details/4480029 计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板 ...
- BZOJ 4198 荷马史诗
哈夫曼树. 如果要最大的深度最小,再按h排序即可. #include<iostream> #include<cstdio> #include<cstring> #i ...
- mysql装载本地文件及模式匹配
使用load data装载本地文件到表中,文件每行一条记录,列值之间用tab分隔,并按照次序一一列出,对于无值或丢失的情况可以使用\N.但是在使用insert into插入的时候不能使用\N,而应该是 ...
- python练习程序(c100经典例12)
题目: 判断101-200之间有多少个素数,并输出所有素数. for i in range(101,201): flag=0; for j in range(2,int(i**(1.0/2))): i ...