《Linux函數調用手冊》之___sacnf格式化字符串輸入
定義:
int scanf(const char * format,.......);
表頭文件:
#include<stdio.h>
說明:
scanf()會將輸入的數據根據參數format字符串來轉換并格式化數據。Scanf()格式轉換的一般形式如下
%[*][size][l][h]type
以中括號括起來的參數為選擇性參數, 而%與type則是必要的。
* 代表該對應的參數數據忽略不保存。
size 為允許參數輸入的數據長度。
l 輸入的數據數值以long int 或double型保存。
h 輸入的數據數值以short int 型保存。
底下介紹type的幾種形式
%d 輸入的數據會被轉成一有符號的十進制數字(int)。
%i 輸入的數據會被轉成一有符號的十進制數字, 若輸入數據以"0x"或"0X"開頭代表轉換十六進制數字, 若以"0"開頭則轉換八進制數字, 其他情況代表十進制。
%0 輸入的數據會被轉換成一無符號的八進制數字。
%u 輸入的數據會被轉換成一無符號的正整數。
%x 輸入的數據為無符號的十六進制數字, 轉換后存于unsigned int型變量。
%X 同%x
%f 輸入的數據為有符號的浮點型數, 轉換后存于float型變量。
%e 同%f
%E 同%f
%g 同%f
%s 輸入數據為以空格字符為終止的字符串。
%c 輸入數據為單一字符。
[] 讀取數據但只允許括號內的字符。如[a-z]。
[^] 讀取數據但不允許中括號的^符號后的字符出現, 如[^0-9].
返回值:
成功則返回參數數目, 失敗則返回-1, 錯誤原因存于errno中。
相關函數:
fscanf, snprintf
示例:
執行:
10 0x1b aaaaaaaaaa bbbbbbbbbb
10 27 aaaaa
返回頂部 | 《Linux函數調用大全》 | 《Linux命令大全》 | Linux專欄 广西11选五走势图彩经网