這是一個(gè)C語(yǔ)言按行讀取文本文件的例子。輸入一個(gè)文本文件a.txt,按行讀取文本內(nèi)容:注意,這個(gè)工具沒有處理多行(\)拼接的場(chǎng)景。
成都創(chuàng)新互聯(lián)從2013年開始,先為樂東黎族等服務(wù)建站,樂東黎族等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為樂東黎族企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
打開文件,如果文件未找到,報(bào)錯(cuò),結(jié)束 fopen 輸入待查的字符串,存到變量中 gets 逐行循環(huán)讀取文件,直到文件結(jié)束 fgets 檢查字符串是否在該行中,如果在,則輸出該行,關(guān)閉文件,結(jié)束。
*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。
函數(shù)名:fgets 2 聲明形式:char *fgets(char *buf, int bufsize, FILE *stream);3 頭文件:stdio.h 4 功能及參數(shù)說明:從stream中讀取一行數(shù)據(jù)存到buf中。
首先定義文件指針 fp=fopen(文件名稱,r);然后用fseek()設(shè)置文件指針的位置;最后用fgets()得到行信息;int fseek(FILE *stream, long offset, int fromwhere);函數(shù)設(shè)置文件指針stream的位置。
char *fgets(char *buf, int bufsize, FILE *stream);參數(shù) *buf: 字符型指針,指向用來存儲(chǔ)所得數(shù)據(jù)的地址。bufsize: 整型數(shù)據(jù),指明存儲(chǔ)數(shù)據(jù)的大小。*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。
功能與gets類似,只是源不同。fgets從fp中讀一行數(shù)據(jù)存到buf中,同時(shí)會(huì)判斷bufsize,如果一行數(shù)據(jù)的長(zhǎng)度超過了bufsize,那么只讀入bufsize長(zhǎng)度的數(shù)據(jù),確保不會(huì)溢出。否則讀取整行。
C語(yǔ)言中,使用fgets函數(shù)遍可以一行行讀取文件。fgets函數(shù):原型:char * fgets(char * buf, int bufsize, FILE * stream);功能:從文件結(jié)構(gòu)體指針stream中讀取數(shù)據(jù),每次讀取一行。
1、C語(yǔ)言可以通過fgets函數(shù)一次讀一行數(shù)據(jù)。fgets函數(shù)原型如下:char *fgets(char *buf, int bufsize, FILE *stream);參數(shù) 說明 buf: 字符型指針,指向用來存儲(chǔ)所得數(shù)據(jù)的地址。bufsize: 整型數(shù)據(jù),指明存儲(chǔ)數(shù)據(jù)的大小。
2、從文件讀取。對(duì)于一個(gè)被打開的文件,如果其是可讀的,那么可以通過fgets函數(shù)實(shí)現(xiàn)按行讀取。char *fgets(char *buf, int bufsize, FILE *fp);功能與gets類似,只是源不同。
3、以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。