scanf(),printf()以及fscanf(),fprintf()的返回值

来源:互联网 发布:淘宝负面评价怎么办 编辑:程序博客网 时间:2024/05/18 15:27

scanf(),printf()以及fscan(),fprintf()的返回值都为int型

 

scanf()的返回值为成功输入的数据个数

如scanf("%d%d%s",&a,&b,s);执行成功返回3.

   scanf("%d%d",&a,&b);执行成功返回2.

如果在输入的过程中scanf("%d%d",&a,&b);由于某种原因只有a输入成功了则返回1,a、b都没成功则返回0

如果遇到错误或遇到end of file,返回EOF(一般宏定义EOF为-1)。

 

 

printf()返回它成功输出的字符个数。不管输出int 型还是转义字符都按字符输出。

如:int a=1,b=2;

       char s[]="hello";

       int j;

       j=printf("%d%d%s",a,b,s);

       printf("%d\n",j);

输出为:12hello

              8

为什么不是7而是8呢?因为字符串s结尾有结束转义字符'\0'

如果把上面j=printf("%d%d%s",a,b,s);改为j=printf("%d %d %s",a,b,s);

则输出为:1 2 hello           //数数这个输出序列有多少个字符,空格不要放过

                  10                     //因为输出时abs之间增加了空格

 

如果改为:int a=10,b=20;

                  char s[]="hello";

                   int j;

                   j=printf("%d%d%s",a,b,s);

                   printf("%d\n",j);

则输出为:1020hello

                  10                             //因为10和20是两位数,在输出的字符序列中各占两位

 

至于printf失败返回什么?这个我真不知道。好像没有失败过。

 

验证了一下fscanf()的返回值和scanf()类似。

fprintf()的返回值和printf()类似。

  

 

     

原创粉丝点击