scanf 函式筆記

2022-06-05 19:06:14 字數 1908 閱讀 6822

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...