跳轉至內容

C++ 程式設計/程式碼/標準 C 庫/函式/scanf

來自華夏公益教科書,自由的教科書
語法
#include <cstdio>
int scanf( const char *format, ... );

scanf() 函式根據給定的格式從 stdin 讀取輸入,並將資料儲存在其他引數中。它的工作方式與 printf() 非常類似。格式字串包含控制字元、空格字元和非空格字元。控制字元以 % 符號開頭,如下所示

控制字元 解釋
%c 單個字元
%d 十進位制整數
%i 整數
%e, %f, %g 浮點數
%lf 雙精度浮點數
%o 八進位制數
%s 字串
%x 十六進位制數
%p 指標
%n 等於到目前為止讀取的字元數的整數
%u 一個 無符號 整數
%[] 一組字元
%% 百分號

scanf() 讀取輸入,匹配來自格式的字元。當讀取到控制字元時,它會將值放入下一個變數。空格(製表符、空格等)會被跳過。非空格字元會與輸入匹配,然後被丟棄。如果在 % 符號和控制字元之間有數字,那麼只有這麼多字元會被轉換成變數。如果 scanf() 遇到一組字元,由 %[] 控制字元表示,那麼在括號內找到的任何字元都會被讀入變數。scanf() 的返回值是成功賦值的變數數量,或者如果出現錯誤則為 EOF

此程式碼片段使用 scanf() 從使用者讀取一個 int、一個 float 和一個 double。請注意,傳遞給 scanf() 的變數引數是按地址傳遞的,如每個變數之前的符號(&)所示

int i;
float f;               
double d;

printf( "Enter an integer: " );
scanf( "%d", &i );             

printf( "Enter a float: " );
scanf( "%f", &f );             

printf( "Enter a double: " );
scanf( "%lf", &d );             

printf( "You entered %d, %f, and %f\n", i, f, d );
相關主題
fgets - fscanf - printf - sscanf
華夏公益教科書