以前解析有規律的檔案的時候要麼用正規表示式,要麼就是傻傻的自己寫程式來解析有規律的檔案。今天突然發現c的庫函式中有乙個現成的可以解析有規律的檔案的函式,就是fscanf()函式。
fscanf()函式(有點像正規表示式):
功 能: 從乙個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格時也結束。
用 法:int fscanf(file *stream, char *format,[argument...]);
int fscanf(檔案指標
,格式字串,輸入列表);
for example:
file*fp;
chara[10];
intb;
doublec;
fscanf(fp,"%s%d%lf",a,&b,&c)
返回值:整型,數值等於[argument...]的個數
其中的format就是相當於正規表示式中的格式,即用什麼樣的格式來分隔檔案中的資訊。光說不好理解,一下用乙個例子來說明具體怎麼用:
首先我有乙個data。txt的檔案裡面的資料格式如下:
2,50,41,w,20.585828
4,52,51,r,52.012547
許多條類似的記錄,都是以,來分隔的
我實現的功能就是把上面檔案中的資料的五個字段賦值給相應的五個變數,並且輸出這些變數的值。實現的程式如下:
#include
#include
int main()
lseek(fd,0,seek_set);
下列是較特別的使用方式:
1) 欲將讀寫位置移到檔案開頭時:
lseek(int fildes,0,seek_set);
2) 欲將讀寫位置移到檔案尾時:
lseek(int fildes,0,seek_end);
3) 想要取得目前檔案位置時:
lseek(int fildes,0,seek_cur); */
while(5==fscanf(fd,"%ld,%ld,%ld,%c,%lf\n",&dev,&offset,&length,&ch,&ts))
close(fd);
return 0;
}通過上面的例子能很好的理解fscanf函式的用法。以前自己寫程式解析這種檔案,費力還不討好,得出的結果還不準確。哎 只能感嘆我太弱了,以後還得好好學習!!!!
fscanf()函式詳解
以前解析有規律的檔案的時候要麼用正規表示式,要麼就是傻傻的自己寫程式來解析有規律的檔案。今天突然發現c的庫函式中有乙個現成的可以解析有規律的檔案的函式,就是fscanf 函式。fscanf 函式 有點像正規表示式 功 能 從乙個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格時也結束。...
fscanf()函式詳解
原文連線 以前解析有規律的檔案的時候要麼用正規表示式,要麼就是傻傻的自己寫程式來解析有規律的檔案。今天突然發現c的庫函式中有乙個現成的可以解析有規律的檔案的函式,就是fscanf 函式。fscanf 函式 有點像正規表示式 功 能 從乙個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格...
關於fscanf函式用法
fscanf fprintf函式都是格式化輸入輸出,都是對檔案的輸入輸出操作。它們的用法如下 fscanf 檔案指標,格式字串,輸入表列 fprintf 檔案指標,格式字串,輸出表列 例如 fscanf fp1,d s i,s fprintf fp2,d c j,ch 對以上例子分析,我的理解是,f...