[爆卦]已忽略傳回值scanf是什麼?優點缺點精華區懶人包

為什麼這篇已忽略傳回值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
Lipraxde: 你的順序是不是反了? 05/06 18:14
firejox: 我想是換行問題? 05/06 20:55
idiont: %d讀完後 \n還留在buffer中 05/07 02:54

※ 編輯: a27839579 (223.137.231.238), 05/07/2019 17:06:10

你可能也想看看

搜尋相關網站