int scanf(const char *format, ...);
《返回值》 scanf ("《格式化字串》", 《參數列》);
scanf 返回成功讀入的變數個數,讀到檔案末尾或發生錯誤返回eof。
如
int n, m;
scanf("%d%d", &n, &m);
scanf("%d%d", &n, &m);
輸入
3 43^z
/*windows系統終端下以^z即ctr+z代表eof*/
返回值為 分別為 2 和 1
又如
int n;
scanf("%d", &n);
輸入
^z
返回值為 -1 ( -1 即 eof 的值, 使用 printf 即可看到)
格式%[width][modifiers]
說明每個%分別對應控制參數列中每個變數的輸入格式(%%除外, * 亦對應乙個變數);
除%引導的部分外,可加入任意輸入格式有關的字元;
width指定了在當前讀取操作中讀取的最大字元數,可省略;
modifiers
引數型別含義d
char型,int型
讀入乙個十進位制整數
oint型,unsigned int型
讀入乙個八進位制整數
x,xint型,unsigned int型
讀入乙個十六進製制整數
uunsigned int型
讀入乙個十進位制整數
lldlong long型
讀入乙個十進位制整數
lluunsigned long long型
讀入乙個十進位制整數
cchar型,int型
讀入單個字元,若 width 不為 1 ,則讀取 width 個字元並儲存在陣列中連續位置。但末尾不會追加空字元。
schar *型
讀入乙個字串,讀到空白符結束,末尾追加 '\0'
ffloat型
讀入乙個十進位制實數
lfdouble型
讀入乙個十進位制實數
e,efloat型,double型
用指數形式讀入乙個十進位制實數
g,gfloat型,double型
讀入乙個十進位制小數
pvoid *型
讀入乙個指標
[ ]/
掃瞄字元集合
%不轉換引數
讀入乙個%
參數列中形參的數量和型別與格式化字串相適應,否則讀入可能發生異常
每個形參用逗號( , )隔開
#includeint main()
輸入示例
3 3 /*變數中值分別為 3 和 3*/
(3,3) /*變數中值分別為 3 和 3*/
( 3 , 3 ) /*多空格可以正常讀入,為 3 和 3,但不規範*/
(3,,3) /*多逗號讀入出錯,第乙個變數為 3 而第二個則無法成功讀入*/
2019 /*變數中值分別為 20 和 19*/
3.14 3.14 /*變數中值分別為 3.14 和 3.14*/
3.143.14 /*變數中值分別為 3.14 和 3.14*/
a /*變數中值為 'a' (實際儲存為字元'a'的ascii碼)*/
hello worldhelloworld /*變數中值為 helloworld\0 (以'\0'作為串結束符)*/
hello world /*變數中值為 hello world (沒有串結束符,不能直接printf)*/
C語言scanf函式筆記
1.變數的記憶體分析 1 位元組和位址 記憶體以 位元組 為單位 1gb 1024mb 1024 1024kb 1024 1024 1024b 每個位元組都有自己的位址 資料越大,佔位元組數越多 在64位編譯器中,基本資料型別所佔位元組數 char 乙個位元組 int 四個位元組 float 四個位...
C 函式 筆記
內聯函式只適用於小函式,使用內聯函式需要注意以下幾點 內聯函式中不能含有任何迴圈語句以及switch和goto語句 內聯函式的宣告必須出現在內聯函式第一次被呼叫之前 內聯函式中不能說明陣列 遞迴函式不能定義為內聯函式 函式過載 函式引數個數或型別不同,可以構成過載函式 生命期 是指乙個識別符號從被建...
OpenCV函式筆記
rect和range劃分範圍 rect的引數為起始座標,長度 rect rect 0,0,image1.cols,image1.rows range的引數為起始座標,終止座標 range range 0,100 copyto函式 image1.copyto image2 當image1和image2...