C語言可以通過fgets函數(shù)一次讀一行數(shù)據(jù)。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的武陵源網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
fgets函數(shù)原型如下:
char *fgets(char *buf, int bufsize, FILE *stream);
參數(shù) 說明
*buf: 字符型指針,指向用來存儲所得數(shù)據(jù)的地址。
bufsize: 整型數(shù)據(jù),指明存儲數(shù)據(jù)的大小。
*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。
fgets函數(shù)注意細(xì)節(jié)如下:
從文件結(jié)構(gòu)體指針stream中讀取數(shù)據(jù),每次讀取一行。
讀取的數(shù)據(jù)保存在buf指向的字符數(shù)組中,每次最多讀取bufsize-1個字符(第bufsize個字符賦'\0'),如果文件中的該行,不足bufsize個字符,則讀完該行就結(jié)束。
如若該行(包括最后一個換行符)的字符數(shù)超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區(qū)總是以NULL字符結(jié)尾,對fgets的下一次調(diào)用會繼續(xù)讀該行。
函數(shù)成功將返回buf,失敗或讀到文件結(jié)尾返回NULL
1通過fopen函數(shù)打開文本,例如file
*fp=fopen("in.txt","r");//返回一個file類型的句柄
2然后就可以通過fcanf()函數(shù)對txt文本進(jìn)行讀取
3操作完文本之后用fclose()函數(shù)
關(guān)閉已經(jīng)打開的文件。
#include
int main()
{
int data;
file *fp=fopen("in.txt","r");
if(!fp)
{
printf("can't open file\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%d",data);
printf("%4d",data);
}
printf("\n");
fclose(fp);
return 0;
}
C語言中,使用fgets函數(shù)遍可以一行行讀取文件。
1、fgets函數(shù):
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:從文件結(jié)構(gòu)體指針stream中讀取數(shù)據(jù),每次讀取一行。
說明:讀取的數(shù)據(jù)保存在buf指向的字符數(shù)組中,每次最多讀取bufsize-1個字符(第bufsize個字符賦值為\0)。如果該行不足bufsize個字符,則讀完該行就結(jié)束,如果該行超過bufsize-1個字符,則fgets只返回一個不完整的行,buf緩沖區(qū)以\0字符結(jié)束,下一次fgets調(diào)用會繼續(xù)讀取該行剩余的字符;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數(shù)buf相同的字符指針,若讀入過程中遇到EOF或發(fā)生錯誤,返回NULL指針。所以當(dāng)遇到返回值為NULL的情況時,應(yīng)使用ferror或feof函數(shù)檢查是發(fā)生錯誤還是遇到EOF。
2、例程:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
fscanf(fp1,"%d",a);//從輸入文件讀取一個整數(shù)
b=fgetc(fp1);//從輸入文件讀取一個字符
fgets(c,100,fp1);//從輸入文件讀取一行字符串
printf("%ld",ftell(fp1));//輸出fp1指針當(dāng)前位置相對于文件首的偏移字節(jié)數(shù)
fputs(c,fp2);//向輸出文件寫入一行字符串
fputc(b,fp2);//向輸出文件寫入一個字符
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數(shù)
fclose(fp1);//關(guān)閉輸入文件
fclose(fp2);//關(guān)閉輸出文件,相當(dāng)于保存
return 0;
}
當(dāng)前標(biāo)題:c語言按行讀取函數(shù) c語言 按行讀取
當(dāng)前鏈接:http://muchs.cn/article20/ddceijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制開發(fā)、App設(shè)計、關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)