scanf什么時候用?
scanf 的意思是把輸入的值給送到地址,因此,如果參數(shù)已經是地址了,那么不需要 &,否則 需要用&取一下地址
scanf 格式輸入函數(shù)
函數(shù)作用:按照變量在內存的地址將變量值存進去。
一般格式:scanf(格式控制,地址表列)
其中,格式控制:
%d:以帶符號的十進制形式輸出整數(shù)
%o:以八進制無符號形式輸出整數(shù)
%x:以十六進制無符號形式輸出整數(shù)
%u:以無符號十進制形式輸出整數(shù)
%c:以字符形式輸出,只輸出一個字符
%s:輸出字符串
%f:以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù)
%e:以指數(shù)形式輸出實數(shù)
%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸
出無意義的0
在格式控制的字母前面可以用幾種常見的格式符的修飾符,作用如下:
L:用于長整型整數(shù),可加在格式符d,o,x,u前面
M(代表一個正整數(shù)):數(shù)據(jù)最小寬度
N(代表一個正整數(shù)):對實數(shù),表示輸出n位小數(shù);
對字符串,表示截取的字符個數(shù)
地址列表:是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址
舉例:
用scanf函數(shù)輸入數(shù)據(jù)。
#include
void main()
{
int a,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
運行情況:3 4 5 (回車) (輸入a,b,c的值)3,4,5 (輸出a,b,c的值)
使用scanf函數(shù)時應注意的問題 :
(1)scanf函數(shù)中的“格式控制”后面應當是變量地址,而不應
是變量名。
(2) 如果在“格式控制”字符串中除了格式說明以外還有其他字符,
則在輸入數(shù)據(jù)時在對應位置應輸入與這些字符相同的字符。
(3) 在用“%c”格式輸入字符時,空格字符和“轉義字符”都作為
有效字符輸入
(4) 在輸入數(shù)據(jù)時,遇以下情況時認為該數(shù)據(jù)結束。
① 遇空格,或按“回車”或“跳格”(Tab)鍵;
② 按指定的寬度結束,如“%3d”,只取3列;
③ 遇非法輸入。