scanf 的意思是把輸入的值給送到地址,因此,如果引數已經是地址了,那麼不需要 &,否則 需要用&取一下地址
scanf 格式輸入函式
函式作用:按照變數在記憶體的地址將變數值存進去。
一般格式:scanf(格式控制,地址表列)
其中,格式控制:
%d:以帶符號的十進位制形式輸出整數
%o:以八進位制無符號形式輸出整數
%x:以十六進位制無符號形式輸出整數
%u:以無符號十進位制形式輸出整數
%c:以字元形式輸出,只輸出一個字元
%s:輸出字串
%f:以小數形式輸出單,雙精度數,隱含輸出六位小數
%e:以指數形式輸出實數
%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸
出無意義的0
在格式控制的字母前面可以用幾種常見的格式符的修飾符,作用如下:
L:用於長整型整數,可加在格式符d,o,x,u前面
M(代表一個正整數):資料最小寬度
N(代表一個正整數):對實數,表示輸出n位小數;
對字串,表示擷取的字元個數
地址列表:是由若干個地址組成的表列,可以是變數的地址,或字串的首地址
舉例:
用scanf函式輸入資料。
#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函式時應注意的問題 :
(1)scanf函式中的“格式控制”後面應當是變數地址,而不應
是變數名。
(2) 如果在“格式控制”字串中除了格式說明以外還有其他字元,
則在輸入資料時在對應位置應輸入與這些字元相同的字元。
(3) 在用“%c”格式輸入字元時,空格字元和“跳脫字元”都作為
有效字元輸入
(4) 在輸入資料時,遇以下情況時認為該資料結束。
① 遇空格,或按“回車”或“跳格”(Tab)鍵;
② 按指定的寬度結束,如“%3d”,只取3列;
scanf 的意思是把輸入的值給送到地址,因此,如果引數已經是地址了,那麼不需要 &,否則 需要用&取一下地址
scanf 格式輸入函式
函式作用:按照變數在記憶體的地址將變數值存進去。
一般格式:scanf(格式控制,地址表列)
其中,格式控制:
%d:以帶符號的十進位制形式輸出整數
%o:以八進位制無符號形式輸出整數
%x:以十六進位制無符號形式輸出整數
%u:以無符號十進位制形式輸出整數
%c:以字元形式輸出,只輸出一個字元
%s:輸出字串
%f:以小數形式輸出單,雙精度數,隱含輸出六位小數
%e:以指數形式輸出實數
%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸
出無意義的0
在格式控制的字母前面可以用幾種常見的格式符的修飾符,作用如下:
L:用於長整型整數,可加在格式符d,o,x,u前面
M(代表一個正整數):資料最小寬度
N(代表一個正整數):對實數,表示輸出n位小數;
對字串,表示擷取的字元個數
地址列表:是由若干個地址組成的表列,可以是變數的地址,或字串的首地址
舉例:
用scanf函式輸入資料。
#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函式時應注意的問題 :
(1)scanf函式中的“格式控制”後面應當是變數地址,而不應
是變數名。
(2) 如果在“格式控制”字串中除了格式說明以外還有其他字元,
則在輸入資料時在對應位置應輸入與這些字元相同的字元。
(3) 在用“%c”格式輸入字元時,空格字元和“跳脫字元”都作為
有效字元輸入
(4) 在輸入資料時,遇以下情況時認為該資料結束。
① 遇空格,或按“回車”或“跳格”(Tab)鍵;
② 按指定的寬度結束,如“%3d”,只取3列;