C語言fscanf函數(shù)的用法是什么

小億
142
2023-12-04 21:14:07
欄目: 編程語言

fscanf函數(shù)是C語言中用于從文件中讀取格式化數(shù)據(jù)的函數(shù)。其函數(shù)原型為:

int fscanf(FILE *stream, const char *format, ...)

其中,stream是指向要讀取的文件的指針;format是一個(gè)字符串,指定了讀取數(shù)據(jù)的格式;…表示可變參數(shù),用于接收讀取到的數(shù)據(jù)。

fscanf函數(shù)根據(jù)format字符串中的格式控制符,從文件中讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)按照相應(yīng)的類型存儲(chǔ)到對(duì)應(yīng)的變量中。常用的格式控制符包括:

  • %d:讀取整型數(shù)據(jù);
  • %f:讀取浮點(diǎn)型數(shù)據(jù);
  • %c:讀取字符型數(shù)據(jù);
  • %s:讀取字符串型數(shù)據(jù);
  • %lf:讀取雙精度浮點(diǎn)型數(shù)據(jù);
  • %u:讀取無符號(hào)整型數(shù)據(jù);
  • %o:讀取八進(jìn)制整型數(shù)據(jù);
  • %x:讀取十六進(jìn)制整型數(shù)據(jù);
  • %p:讀取指針型數(shù)據(jù)等等。

例如,以下代碼從文件中讀取一個(gè)整型數(shù)值并存儲(chǔ)到變量num中:

int num;
FILE *fp;
fp = fopen("file.txt", "r");
fscanf(fp, "%d", &num);
fclose(fp);

注意,fscanf函數(shù)在讀取數(shù)據(jù)時(shí)會(huì)跳過空白字符(空格、制表符、換行符等),直到找到非空白字符為止。另外,fscanf函數(shù)返回成功讀取的參數(shù)個(gè)數(shù),如果讀取失?。ㄎ募Y(jié)束或格式不匹配等),則返回EOF(-1)。

需要注意的是,使用fscanf函數(shù)時(shí)應(yīng)確保文件已經(jīng)成功打開,并在讀取完數(shù)據(jù)后及時(shí)關(guān)閉文件,以免造成文件資源的浪費(fèi)或數(shù)據(jù)不一致的問題。

0