fscanf函數是用來從指定的輸入流中讀取格式化輸入的函數,它的作用是根據指定的格式字符串將輸入流中的數據按照指定的格式進行解析,并將解析后的數據存儲到指定的變量中。
具體來說,fscanf函數可以從文件、標準輸入或其他輸入流中讀取數據,并根據格式字符串指定的格式讀取相應的數據。格式字符串可以包含各種格式控制符,如%d、%f、%s等,用來指定讀取的數據類型和格式。
fscanf函數的一般語法為:
int fscanf(FILE *stream, const char *format, ...)
其中,stream是指向輸入流的指針,format是格式字符串,后面的省略號表示可以有多個參數,用來指定讀取的數據存儲位置。
fscanf函數會根據格式字符串從輸入流中讀取相應的數據,并將其存儲到對應的變量中。如果讀取成功,返回成功讀取的參數個數;如果讀取失敗或遇到錯誤,則返回EOF。
示例:
int num; float price; char name[20]; fscanf(stdin, "%d%f%s", &num, &price, name);
上述代碼從標準輸入中依次讀取一個整數、一個浮點數和一個字符串,分別存儲到變量num、price和name中。
需要注意的是,fscanf函數在讀取數據時會受到輸入流的限制,例如文件的結尾、輸入的格式與要求不匹配等情況都可能導致讀取失敗。因此,在使用fscanf函數時應該進行錯誤處理,以確保讀取的數據符合預期。