Code Bye

讨教一个scanf语句的问题

while(scanf(“%d %d”,&evil1,&evil2)==2)
{
printf(“the lesser of %d and %d is %d.\n”,evil1,evil2,imin(evil1,evil2));
printf(“enter a pair of integers (q to quit):\n”);
}
问一下 scanf(“%d %d”,&evil1,&evil2)==2 这个判断是什么意思?万分感激。
解决方案

10

int imin(int n,int m);
int main()
{
int evil1,
evil2;
printf(“Enter a pair of integers(q to quit):\n)”);
while(scanf(“%d%d”,&evil1,&evil2)==2)
{
printf(“The lesser of %d and %d is %d.\n”,evil1,evil2,imin(evil1,evil2));
printf(“Enter a pair of integers(q to quit):\n)”);
}
printf(“Bye.\n”);

return 0;
// 提问区域可用时间    alog && alog(“speed.set”, “c_ask”, +new Date); alog.fire && alog.fire(“mark”);        F.context(“answers”)[“1190817758″] = {uid:”734719339″,imId:”6bed6c6f7665536c696d6c6565ca2b”,isBest:”1″,id:”1190817758″,userName:”loveSlimlee”,userNameEnc:”loveSlimlee”,user:{sex:”1″,iconType:”6″,gradeIndex:”2″,grAnswerNum:”3″,carefield: [{cid:”866″,cname:”C/C++”}],isAuth:”0″,authTitle:””,isUserAdmin:”0″,userAdminLevel:””,userAdminTitle:””,userAdminType:””,isFamous:”0″,isMaster:”0″,goodRate:”60″,applyExcType:”0″},isAnonymous:”0″,isCurrentUser:”0″,mapUrl:””,refer:””,replyAskNum:””,threadId:”4763271033″,hasComment:”0″,qid:”476406884″,raid:””,recommendCanceled:”0″};                 F.context(“relateWords”)[“best-content-“+”1190817758”] = [“\u51fd\u6570\u539f\u578b”,”\u503c\u7c7b\u578b”];
2012-09-13 11:23
提问者采纳
scanf这个函数式有返回值的,函数原型为int scanf( const char *format, … );可见其返回值类型为int类型的,返回值得含义是你成功读入数据的个数。具体到你的问题中就是,当你成功输入两个数字的时候,循环继续,当你输入的数字小于两个的时候就会跳出循环。多谢采纳。

10

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表示输入结束。

5

查MSDN是Windows程序员必须掌握的技能之一。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教一个scanf语句的问题