精华内容
下载资源
问答
  • scanf的返回值

    千次阅读 2019-05-07 16:02:25
    scanf的返回值是成功输入的参数个数 如scanf("%d",&a)成功的话会返回1 scanf("%d%d",&a,&b)成功的话返回2

    scanf的返回值是成功输入的参数个数
    如scanf("%d",&a)成功的话会返回1
    scanf("%d%d",&a,&b)成功的话返回2

    展开全文
  • 关于scanf的返回值请参考我的另一篇文章 以及另一篇博文关于scanf的返回值 先看一下下面的题目: //用代码表示以下测试条件// scanf()读取一个名为x的double类型值且失败 scanf()成功读入一个整数 答案...

    关于scanf的返回值请参考我的另一篇文章
    scanf的返回值
    以及另一篇博文关于scanf的返回值
    先看一下下面的题目:
    //用代码表示以下测试条件//

    1. scanf()读取一个名为x的double类型值且失败
    2. scanf()成功读入一个整数
      答案如下:
    scanf("%lf",x) != 1//或者写成scanf("%lf",x) == 0也行
    scanf("%d",x) == 1
    

    在这里scanf的返回值作为了一个条件,这种常常放到循环中应用
    例如:

    while (scanf("%s %c %c", str, &oldchar, &newchar) == 3)
     /* 或!= EOF , 但前者更好 */(这其实是上面其中一篇文章里面的一段代码)
    

    关于这段代码我想要解释的是为什么%s与%c之间要加一个空格,上面的文章中也有解释,但我想再补充一下,因为我昨天才刚刚学过这一个知识点,即:“%c”与“ %c"的区别(第二个%c后面有一个空格,第一个没有)
    详见我的另一篇博文%c前面加空格的作用
    具体的可以自己尝试敲一个代码运行试一下,实践出真知

    关于EOF的应用在你看了上面的文章之后可以尝试运行一下下面的程序:

    //输入n和n个整数,求n个整数的和
    #include<stdio.h>
    int main()
    {
        int i,n,sum,a;
    
        printf("请输入n和n个整数")while(scanf("%d",&n) != EOF)
        {
            sum = 0;
            for(i = 1;i <= n;i++)
            {
                scanf("%d",&a);
                sum = sum + a;
            }
            printf("%d\n", sum);
        }
    
    
        return 0;
    }
    

    另附文章参考EOF的输入与应用

    == 如有错误欢迎读者提出与指点,定感激不尽==

    展开全文
  • 关于scanf的返回值

    2018-04-07 20:52:27
    在A题的时候,我们经常会在while()语句中写scanf的返回值,例如while(scanf("%d",&amp;x)==1)这样的语句,今天我们就来说关于scanf的返回值问题。众所周知scanf()返回的是输入个数,但当输入不...

    在A题的时候,我们经常会在while()语句中写scanf的返回值,例如while(scanf("%d",&x)==1)这样的语句,今天我们就来说关于scanf的返回值问题。众所周知scanf()返回的是输入个数,但当输入不匹配或者格式化参数与实参不匹配时,scanf又是如何返回参数值的,我们来研究研究

    我们先看如下代码:

    (1)当匹配格式正确,而后面的实参有多余时

    #include<stdio.h>
    int main(){
    	int x,y,z;
    	int sum=scanf("%d %d",&x,&y,&z);
    	printf("%d",sum);
    }

    我们输入 1回车,输入2回车,然后结果就显示为2


    我们由此可以得出结论,当匹配格式正确,而后面的实参有多余时,多余的实参会被丢弃,返回的是匹配个数

    (2)当匹配格式正确,而后面的实参却比前面的格式化参数少时

    #include<stdio.h>
    int main(){
    	int x,y,z;
    	int sum=scanf("%d %d %d",&x,&y);
    	//printf("%d %d\n",x,y);
    	printf("执行这里\n"); 
    	printf("%d",sum);
    }

    我们执行代码可以发现我们可以输入3个数字,但是程序终止在scanf语句这里,后面的并没有执行


    由此我们可以得出结论,当匹配格式正确,而后面的实参却比前面的格式化参数少时,scanf()语句在对应的格式化参数输入后,程序即终止

    (3)当匹配格式不正确时,格式化参数与实参个数相同

    #include<stdio.h>
    int main(){
    	int x,y,z;
    	int sum=scanf("%d %d %d",&x,&y,&z);
    	//printf("执行这里\n"); 
    	printf("%d",sum);
    }

    执行以上代码,我们分别对以下数据进行测试:(我们每次出入并不是按空格键,而是回车键)

    a --->0

    1 a------>1

    1 2 a------>2

    我们发现scanf语句返回的是正确匹配的个数,并在输入格式与格式化参数不匹配时,scanf语句结束输入,并向下执行

    (4)当匹配格式不正确,格式化参数与实参个数不相同时

    int sum=scanf("%d %d %d",&x,&y);例如这条语句,我们输入1 2 a 时sum得到值2,而我们输入1 2 3 时,scanf这里程序终止,所以这种情况scanf的返回值是在错误输入前正确与格式化参数匹配的个数


    展开全文
  • scanf的返回值与循环输入 scanf()是拥有返回值的,它的返回值为正确按指定格式读入变量的个数,可以借此特性来循环读入,并当读入不正确时自动结束 代码 #include <stdio.h> #include <windows.h> int ...

    scanf的返回值与循环输入

    scanf()是拥有返回值的,它的返回值为正确按指定格式读入变量的个数,可以借此特性来循环读入,并当读入不正确时自动结束

    代码

    #include <stdio.h>
    #include <windows.h>
    
    int main(){
        int i, a, b, c;
        /* scanf函数返回值为正确按指定格式读入变量的个数 */
        a = scanf("%d %d", &b, &c);
        printf("scanf return:%d\n", a);
    
        /* 从输入流循环读取i,直到scanf输入空值 */
        /* ~按位取反,-1的16进制为0xffffffff,f的二进制为1111,取反后值为0 */
        /* 用Ctrl + Z结束输入 */
        while(~scanf("%d", &i)){
            printf("%d\n",i);
            
        }
        printf("=============================\n");
        /* EOF即End of File值为-1,是C标准函数库中的文件结束符, 所以上边的代码也可以改为*/
        while (scanf("%d", &i) != EOF) {
            printf("%d\n", i);
        }
        system("pause");
        return 0;
    }
    

    输出样例

    输出样例

    展开全文
  • scanf的返回值 scanf的返回值等于成功输入的个数 例如 n=scanf("%d%d",&a,&b); 如果a和b都被成功赋值,则n=2;如果只有a被成功赋值,则n=1;如果ab都没能被赋值,则n=0。 EOF 读数时如果遇到错误或文件...
  • C语言-回炉重造(一)scanf的返回值 scanf() 函数,使用时通常只会了解格式化输入,但是这其实是一个有返回值的函数。 返回值为:正确格式化输入的个数 测试例程...
  • scanf的返回值引用 我们不需要再另设标志位来退出循环,检测scanf的返回值即可 #include<stdio.h> intmain(void){ intsum=0;//sum的值务必要初始化,否则会产生垃圾值! intnum=0; while(1==scanf("%d...
  • C++ 中scanf的返回值

    2020-06-11 22:04:30
    scanf函数的返回值 scanf函数是一个输入函数,用法如下所示 scanf("%d%d",&a,&b); 将输入的数据分别赋予到a和b。当赋值成功,返回一个数字,这个数字就是赋值成功的个数。比如说a、b都赋值成功了,就返回2...
  • scanf的返回值探究

    2010-03-31 11:20:00
    在oj做题时while循环中使用scanf时,有时会出现Output Limit Exceed错误,弄得我很纠结,最后只能通过去掉...如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返
  • C语言中scanf的返回值

    2020-12-31 16:32:31
    scanf返回值是int类型数据 scnaf返回值是按照正常输入类型进行输入数据个数 int a, b, c; int res = scanf("%d %d %d",&a, &b, &c); printf("%d", res); 若输入为 1 2 m 则输出 x 为 2,因为m并不...
  • scanf 函数 :1.scanf()函数有返回值且为int型。2.scanf()函数返回值为:正确按指定格式输入变量个数;也即能正确接收到值变量个数。例如: #include&lt;stdio.h&gt; int main() { int a; int b;...
  • scanf的返回值

    2019-09-27 16:53:20
    void main() {int a,b,c; c=scanf("%d %d",&a,&b); printf("%d",c);...}为什么我输入a 1 , c值就为0,输入1 a,c值为1 ...scanf返回接收到变量值个数。 int a,b,c。 a 1进去...
  • scanf的返回值调用

    千次阅读 2018-07-30 10:08:29
    scanf返回正确读入个数 如 x = scanf("%d%d%d", &x, &y, &m); printf("%d", x); -------------------------------- input:1 2 3; output:3; -------------------------------- input:1 2 x; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,315
精华内容 526
关键字:

scanf的返回值