计算机C语言相关思考

C 关于printf scanf的返回值的问题思考

2018-04-18  本文已影响0人  cseeing

printf返回值的思考


    #include <stdio.h> 
      int main(void)
      {
          printf("%d",printf("%d",printf("%d",43)));
      }

其输出结果为

4321

过程:printf先将43打印出来,然后最右边的printf返回2,对应第二个%d打出2,在对应第三个%d打出1。

原因:printf接收打印的内容返回要打印的长度

其结果是?

结果为

43
3
3

原因:\n也算同样的长度。同时打印换行。

scanf的返回值思考

之前一直没有思考的问题,后来在思考printf的返回值时受了启发,于是自己写了段简单代码验证自己的想法。

  #include  <stdio.h>
  int main(void)
  {
      int a,b;
      b=scanf("%d,&a);   //此时我输入5
      printf("%d",b);
  }

结果打印几?
结果为1
后我输入A
结果为0

原因:通过scanf函数的返回值和指定输入数据的个数(由格式符决定)的比较,可以判断数据输入是否成功。

上一篇 下一篇

猜你喜欢

热点阅读