fscanf

fscanf

fscanf 位於頭檔案中,函式原型為 int fscanf(FILE * stream, const char * format, [argument...]); 其功能為根據數據格式(format)從輸入流(stream)中讀入數據(存儲到argument);與fgets的差別在於:fscanf遇到空格和換行時結束,注意空格時也結束,fgets遇到空格不結束。

一般形式

函式名: fscanf

功 能: 從一個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格時也結束。這與fgets有區別,fgets遇到空格不結束。

返回值:整型,成功返回讀入的參數的個數,失敗返回EOF(-1)。

用法:

FILE *stream:檔案指針

char *format:格式字元串

[argument...]:輸入列表

格式字元說明

常用基本參數對照:

%d:讀入一個十進制整數.

%i :讀入十進制,八進制,十六進制整數,與%d類似,但是在編譯時通過數據前置或後置來區分進制,如加入“0x”則是十六進制,加入“0”則為八進制。例如串“031”使用%d時會被算作31,但是使用%i時會算作25.

%u:讀入一個無符號十進制整數.

%f %F %g %G : 用來輸入實數,可以用小數形式或指數形式輸入.

%x %X: 讀入十六進制整數.

%o': 讀入八進制整數.

%s : 讀入一個字元串,遇空字元‘\0'結束。

%c : 讀入一個字元。無法讀入空值。空格可以被讀入。

附加格式說明字元表修飾符說明

L/l 長度修飾符 輸入"長"數據

h 長度修飾符 輸入"短"數據

示例說明

如果要求從標準輸入中輸入一串字元串和一個整型數,那么參數“%s%d”表示什麼呢?默認情況下,在終端上(這裡假設程式為控制台應用程式)輸入第一個參數的值的時候敲下回車,則在第二行輸入的為第二個參數值,採用這種輸入方法那么格式字元的形式就無關緊要了。

這裡要特殊說明的是如果參數在同一行給出,那么格式字元的參數與終端的輸入會有什麼關係。舉個例子:如果格式字元為“%s+%d”,那么參數的輸入就應該為 string + integer。

程式例

例一

例二

附:MSDN中例子

相關詞條

相關搜尋

熱門詞條

聯絡我們