為什麼這篇已忽略傳回值scanf鄉民發文收入到精華區:因為在已忽略傳回值scanf這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者a27839579 ()看板C_and_CPP標題[問題] scanf函數的回傳值時間Mon M...
以下是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;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.231.238
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1557132145.A.440.html
※ 編輯: a27839579 (223.137.231.238), 05/07/2019 17:06:10