c语言scanf返回值

1. scanf 函数是有返回值的,它的返回值可以分成三种情况
  1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
      如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
      如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
  2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
  3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

所以可以使用下面的代码来处理输入:
while (scanf("%s %c %c", str, &oldchar, &newchar) == 3) /* 或!= EOF , 但前者更好 */
{
    ; //处理
}

2. 为什么前面 scanf 的格式串里面,%s和%c中间需要空格呢?
  那是因为如果没空格的话。。。oldchar输入的就是空格了= =.

3. 顺便说一下,printf的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gpgga格式读取MATLAB,GPS编码格式及读取.doc

GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此…

Cadence 电源完整性仿真实践(二)

转载于:http://blog.csdn.net/wu20093346/article/details/38050917 通过以上步骤对每个平面进行了单节点分析并观测了响应曲线,接下来将观测平面对的目标阻抗是否满足要求,通过选择电容器的方法来减小含有电容器阻抗响应曲线中的反谐振波峰。在SigWave窗…

Johnson 全源最短路径算法

解决单源最短路径问题(Single Source Shortest Paths Problem)的算法包括: Dijkstra 单源最短路径算法:时间复杂度为 O(E VlogV),要求权值非负; Bellman-Ford 单源最短路径算法:时间复杂度为 O…

单循环链表中设置尾指针比设置头指针更好的原因

尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便。 设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next和rear,查找时间都是O(1)。 若用头指…

为何大部分人成不了技术专家?

此文为我在CSDN的新的SNS里看到的,感触很深,和大家分享一下.里面的许多人的观点都让我受益匪浅。 如果你是项目经理,产品经理或者架构师,我真诚邀请你加入 如果你还是学生或者还是初学者,我建议你先等等,…

Machine Learning 学习笔记1 - 基本概念以及各分类

What is machine learning? 并没有广泛认可的定义来准确定义机器学习。以下定义均为译文,若以后有时间,将补充原英文...... 定义1、来自Arthur Samuel(上世纪50年代、西洋棋程序) 在进行特定编程的情况下给予计算机学习能力的领域…

值传递与地址传递

值传递与地址传递的区别:两者其实传递的都是一个内存单元的内容。不同的是,值传递传递的内容是一个变量的值,得到这个值后,对这个值的修改不能改变原变量的值;而地址传递传递的是一个变量的地址,得到传递的…

蒙特 卡罗方法matlab,蒙特·卡罗方法中的数学之美,你一定不想错过

原标题:蒙特卡罗方法中的数学之美,你一定不想错过有方教育——我们致力于为中学生提供学界和业界前沿的学术科研教育内容,帮助学生参加海外科研项目,在提升申请竞争力的同时,获得领跑优势。一、概述蒙特卡罗方法(Monte…

【 CDN 最佳实践】CDN 命中率优化思路

CDN 在静态资源的加速场景中是将静态资源缓存在距离客户端较近的CDN 节点上,然后客户端访问该资源即可通过较短的链路直接从缓存中获取资源,而避免再通过较长的链路回源获取静态资源。因此 CDN的缓存命中率的高低直接影响客户体验,而保证较高…

职场新人的入门法则:少想、多做、立即执行!

对于刚进入职场的新人来说,要想在工作中快速获得成长,唯一办法就是:“少想,多做,立即执行!”。 少想不等于盲目,在保证工作思路绝对清晰的同时,执行力越高,执行速度越快…

Python基础-time and datetime

一、在Python中,通常有这几种方式来表示时间: 时间戳格式化的时间字符串元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。1.时间戳(timestamp)的…

实际应用中带头节点的线性链表

/*带头节点的线性链表类型*/ typedef char ElemType//结点类型 typedef struct LNode {char data;struct LNode *next; }*Link,*Position;//链表类型 typedef struct {Link head,tail;int len; }LinkList;/**/ /*一些在其他函数定义中会调用的函数*/ /**//*---compare---比较两…

matlab中欧姆如何表示,在excel中欧姆符号怎么打

在excel中欧姆符号怎么打,相信对于好多熟练用excel的朋友来说,是很简单不过的,但是对于有些初学者来说,就是菜鸟啦,就有点懵懵懂懂的感觉了,毕竟刚接触的东西还没用过嘛。但是,没关系今天笔者就…

原生js系列之DOM工厂模式

写在前面 如今,在项目中使用React、Vue等框架作为技术栈已成为一种常态,在享受带来便利性的同时,也许我们渐渐地遗忘原生js的写法。 现在,是时候回归本源,响应原始的召唤了。本文将一步一步带领大家封装一套属于自己的…

武术与软件设计 - 简单即是最好

偶然间在公车上看见一个讲中国功夫的特辑,说道香港武打片的发展历程,当然就不得不提起李小龙先生,我们知道他截拳道的威力,这时候我记得在看李小龙传奇时他所说的一些话,当他和美国一个高手比武后他输了,最…

matlab的概述,Matlab概述

MATLAB(矩阵实验室)是数字计算,可视化和编程的第四代高级编程语言和交互式环境。MATLAB是由MathWorks开发的。它允许矩阵操纵,绘制功能和数据; 实现算法; 创建用户界面; 与其他语言编写的程序(包括C语言,C,Java和FORTRAN)进行交互…

形参和实参

形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参…

sizeof和strlen的区别

strlen——get the length of a string.size_t strlen(const char *string);Each ofthese functions returns the number of characters instring, notincluding the terminating null character.//函数返回string里的字符数,不包括终止字符\0sizeofThe sizeof keyw…

位置参数及操作符号

特殊字符对应的处理参数: 参数说明$0当前执行的脚本文件名,若全路径执行,则显示脚本路径$n当前执行脚本的第n个参数值,若n>9,则需写成${10}$#当前传参总个数$$脚本运行的当前进程ID号,用例:当一个进程重…

python变量命名可以有特殊符号吗,和孩子一起学习python之变量命名规则

下面是关于变量名(也称为标识符)的一些规则必须以一个字母或一个下划线字符开头。后面可以使用一个字母、数字或下划线字符的序列,长度不限。字母可以是大写或小写,大小写是不同的。也就是说,Ax不同于aX。数字可以是从0到9(包括0到9)的任意数…