c语言-scanf("%d%d", &a, &b) == 2该如何理解

问题描述

scanf("%d%d", &a, &b) == 2该如何理解

scanf("%d%d", &a, &b) == 2该如何理解?
刚入门不是很懂

解决方案

 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),表示输入流已经结束。

解决方案二:

说明成果接收到了2个东西。

解决方案三:

scanf("%d%d", &a, &b) == 2 判断输入的a,b 是否赋值成功,当a,b都成功了,赋值成功是就是2,当只有一个成功那么就是1

解决方案四:

输入两个整数,分别赋值给a,b
成功了就就会返回2,所以用==2来判断

时间: 2024-10-21 12:17:08

c语言-scanf("%d%d", &a, &b) == 2该如何理解的相关文章

一个关于C语言scanf,和文件读写的问题

问题描述 一个关于C语言scanf,和文件读写的问题 下面这段程序出了点问题void input()中无法对char i进行赋值,就是这句 scanf("%c",&i);在下面已被标出,在运行时会被跳过,我总是看不出什么毛病,想求您给看一眼: 另外还有个问题,这个函数void search()//查询学生成绩有个毛病,也已标出,请老师给看一下. #include"stdio.h" #include"string.h" #include&q

关于C语言scanf输入的问题(清除缓存区好像没有用)

问题描述 关于C语言scanf输入的问题(清除缓存区好像没有用) 一道作业题,题目是这样的 我尝试用这个来输入p1: for(i=0;*(p1+i)!='';i++){ scanf("%c",p1+i); } 可是输入完字符串之后 回车 不能结束输入: 我查了一下资料,有人说是缓存区没有清空,让我加一个getchar(),或者用fflush(),可是都没有解决问题... 没办法,我改成了这样: 现在输入的问题解决了,输出又有问题了... 之前用scanf输入和 用 getchar 输入

c语言-C语言scanf返回值的问题

问题描述 C语言scanf返回值的问题 其调用格式为: scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF. 为了测试这一点我写了两段代码,第一段是 a=scanf("%d",&b); printf("%d",a);这样写输入1.2,2.3,2,3,4 都会打印1. 但是 while(scanf("%d",&b)==1);输入1

c语言-C语言scanf读取单个字符出错

问题描述 C语言scanf读取单个字符出错 { char a; scanf_s("%c", &a); printf("%c", a); } 编译报warning: 警告 C4477 'scanf_s' : format string '%d' requires an argument of type 'int *', but variadic argument 1 has type 'char *' 并且得不到正确的结果. 使用getchar()没有问题,求

c语言-C语言scanf与printf?

问题描述 C语言scanf与printf? 代码如下 运行环境 VS2013 问题:输入1a 输出a=1 (这个没问题)而ch却什么都没得到.为什么?ch不应是a吗? #include<stdio.h> #include<stdlib.h> int main() { int a; char ch; scanf_s("%d", &a); printf("a=%dn",a); scanf_s("%c", &ch

c语言scanf的相关问题

问题描述 c语言scanf的相关问题 scanf("n%*c%d",&m); 这句话具体的含义是什么我不太明白,求详细解释 解决方案 n匹配键盘输入的回车,%*c匹配回车后面的一个字符并跳过该字符,%d将获取字符后面的数字,并将该数字赋值给m 解决方案二: 输入: 回车 1234 最后m的值为234. 其中/n跟回车对应 %*c 跳过了1 最后%d对应234赋值给m 解决方案三: n对应回车,%*c对应跳过回车后的第一个字符,%d对应跳过字符后的整数并赋值给m 解决方案四: 格

c语言scanf( )函数的一个问题

问题描述 c语言scanf( )函数的一个问题 #include int main() { int s; while(1) { printf("请输入:"); scanf("%d",&s); printf("%d ",s); } /*当给s从键盘接受字母的时候,该循环会出现不同, 原先(正常输入证书的时候)是等待你输入了s过后才 会输出结果,但现在(给s从键盘接受字母的时候)不 需要等待直接死循环下去. 我想请教各位长辈,这是什么原因导致

c语言scanf()函数的返回值

问题描述 c语言scanf()函数的返回值 c primer plus 一书中,199页的showchar2.c程序中有一行代码是if(scanf("%d %d",&rows,&cols)!=2),请问这里的scanf函数返回值的是参数的个数吗? 解决方案 http://blog.csdn.net/21aspnet/article/details/174326 解决方案二: c语言scanf返回值c语言中 scanf() 和printf()的返回值C语言中的printf

c语言-C语言scanf()语句的一个问题

问题描述 C语言scanf()语句的一个问题 C语言scanf()什么时候用&,什么时候又不用?为什么要用&,这样用的好处是什么? 解决方案 &的作用是取地址,对于简单变量,比如int float等就需要.字符数组.指针,本身就是指针了,就不需要.不用取地址,函数内怎么把得到的结果再返回主程序呢? 解决方案二: C语言中关于scanf()函数返回值问题C语言scanf问题C语言中scanf的问题 解决方案三: &就是相当于地址的意思,你从键盘中输入数或赋值是要暂时存到一个地

vs中的aspx页面-Vs引用样式id=&amp;amp;quot;不提示&amp;amp;quot;

问题描述 Vs引用样式id="不提示" 在vs中aspx页面引用样式后,比如 请问这怎么解决,找了好久,可是没有合适的答案,请大侠帮忙解决! 解决方案 id="不提示" 这中写法是老师教的,还是你自己想的 样式调用不要用中文,可以这样写id="nav" 然后样式中 .nav{ width:500px; heigth:500px; border:1px solid red; } 样式里面自己发挥 相关文章 ajax-关于Ajax 入门一直出错 vi