-----------------------------------------------------------------------------------------------------------------------
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、南沙ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的南沙網(wǎng)站制作公司
fgets函數(shù)原型如下:
char *fgets(char *s,int n,FILE *stream);
它一次從文件中讀取一行,包括換行符,放入字符串s中,并且加上字符串結(jié)束標(biāo)志符'\0'。參數(shù)n代表緩沖區(qū)s中最多能容納多少個字符(不算結(jié)尾標(biāo)志符'\0')。
fgets函數(shù)返回一個char類型的指針,和s指向同一個地方。如果在沒有數(shù)據(jù)可以讀取,那么函數(shù)就返回NULL。
----------------------------------------------------------------------------------------------------------------------
下面的程序?qū)⑽谋疚募tudents.txt的內(nèi)容依次讀到字符串s中輸出
#includestdio.h
#includestdlib.h
#define MAX 200
int main()
{
FILE *fpSrc;
char szLine[MAX];
fpSrc=fopen("students.txt","r");
//文件要指明路徑
if(NULL==fpSrc)
{
printf("文件讀取失敗!");
exit(1);
}
while(fgets(szLine,MAX-1,fpSrc))//從文件中讀取一行寫入到字符串szLine中,直到fgets函數(shù)返回NULL
printf("%s\n",szLine);//打印出讀取的內(nèi)容
fclose(fpSrc);//關(guān)閉文件流
return 0;
}
當(dāng)然有可能溢出,一般來說不會聲明一個字符變量,然后把讀取的一段數(shù)據(jù)往一個字符變量所在的地址放(那字符變量后面的內(nèi)存不是都被蓋了?),正確的用法是malloc一段大小的內(nèi)存,一次讀取的大小不超過這段內(nèi)存的大小,這樣才安全。
fgets(由文件中讀取一字符串)
表頭文件
includestdio.h
定義函數(shù)
char * fgets(char * s,int size,FILE * stream);
函數(shù)說明
fgets()用來從參數(shù)stream所指的文件內(nèi)讀入字符并存到參數(shù)s所指的內(nèi)存空間,直到出現(xiàn)換行字符、讀到文件尾或是已讀了size-1個字符為止,最后會加上NULL作為字符串結(jié)束。
返回值
gets()若成功則返回s指針,返回NULL則表示有錯誤發(fā)生。
范例
#includestdio.h
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
執(zhí)行
this is a test /*輸入*/
this is a test /*輸出*/
當(dāng)前文章:c語言fgets一維函數(shù),c++fgets函數(shù)的用法
本文路徑:http://chinadenli.net/article38/hesjsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、微信公眾號、服務(wù)器托管
聲明:本網(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)