[問題] scanf函數的回傳值

作者: a27839579   2019-05-06 16:42:23
以下是C scanf函式的原型
函式原型:int scanf ( const char * format, ... );
引數說明:%[*][width][modifiers]type
%[*][寬度][長度修飾]資料型態
傳回值:成功配對之引數數目,失敗時將傳回 EOF
請問下面這兩支程式作對比
兩支程式執行後在命令提示字元下輸入相同格式
ss(整數) (整數)
第一支程式scanf函式回傳為TURE
可是第二支程式的第二個scanf函式回傳值卻是FALSE
是甚麼原因?
是因為scanf格式輸入錯誤?
如果是編譯怎麼會成功呢??
感謝!!!
(1).
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int b,c;
printf("請輸入整數:");
c=scanf("ss%d",&b);
printf("\n\nscanf的回傳值為%d\n\n",c);
printf("\n\n你的輸入為%d\n\n",b);
system("pause");
return 0;
}
(2).
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a,b,c;
printf("請輸入整數:");
scanf("%d",&a);
printf("\n\n你的輸入為%d\n\n",a);
printf("請輸入整數:");
c=scanf("ss%d",&b);
printf("\n\n第二個scanf的回傳值為%d",c);
printf("\n\n你的輸入為%d\n\n",b);
system("pause");
return 0;
}
作者: Lipraxde (Lipraxde)   2019-05-06 18:14:00
你的順序是不是反了?
作者: firejox (Tangent)   2019-05-06 20:55:00
我想是換行問題?
作者: idiont (supertroller)   2019-05-07 02:54:00
%d讀完後 \n還留在buffer中

Links booklink

Contact Us: admin [ a t ] ucptt.com