功能
創(chuàng)新互聯(lián)公司專注于溫州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供溫州營銷型網(wǎng)站建設(shè),溫州網(wǎng)站制作、溫州網(wǎng)頁設(shè)計、溫州網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造溫州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供溫州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。從文件結(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。因此我們不能直接通過fgets的返回值來判斷函數(shù)是否是出錯而終止的,應(yīng)該借助feof函數(shù)或者ferror函數(shù)來判斷
函數(shù)原型
char *fgets(char *buf, int bufsize, FILE *stream);
*buf:字符型指針,指向用來存儲所得數(shù)據(jù)的地址。
bufsize: 整型數(shù)據(jù),指明存儲數(shù)據(jù)的大小。
*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。
stream文件流指針體指向文件內(nèi)容地址的偏移原則
如果使用fgets()讀取某個文件,第一次讀取的bufsize為5,而文件的第一行有10個字符(算上'\n'),那么讀取文件的指針會偏移至當(dāng)前讀取完的這個字符之后的位置。也就是第二次再用fgets()讀取文件的時候,則會繼續(xù)讀取其后的字符。而,如果使用fgets() 讀取文件的時候bufsize大于該行的字符總數(shù)加2(多出來的兩個,一個保存文件本身的'\n'換行,一個保存字符串本身的結(jié)束標(biāo)識'\0'),文件并不會繼續(xù)讀下去,僅僅只是這一行讀取完,隨后指向文件的指針會自動偏移至下一行。
例子
如果一個文件的當(dāng)前位置的文本如下
Love, I Have
Since you can do it.
如果用fgets(str1,6,file1);去讀取
則執(zhí)行后str1 = "Love," ,讀取了6-1=5個字符
這個時候再執(zhí)行fgets(str1,20,file1)則執(zhí)行后str1 = " I Have\n"
而如果
fgets(str1,23,file1);
則執(zhí)行str1="Love ,I Have",讀取了一行(包括行尾的'\n',并自動加上字符串結(jié)束符'\0'),當(dāng)前文件位置移至下一行,雖然23大于當(dāng)前行上字符總和,可是不會繼續(xù)到下一行。而下一次調(diào)用fgets()繼續(xù)讀取的時候是從下一行開始讀。
從 handle 指向的文件中讀取一行并返回長度最多為 length - 1 字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止(看先碰到那一種情況)。如果沒有指定 length,則默認(rèn)為 1K,或者說 1024 字節(jié)。
出錯時返回 FALSE。
②fscanf()
功 能:
從一個流中執(zhí)行格式化輸入,fscanf遇到空格和換行時結(jié)束,注意空格時也結(jié)束。這與fgets有區(qū)別,fgets遇到空格不結(jié)束。
用 法: int fscanf(FILE *stream, char *format,[argument...]);
int fscanf(文件指針,格式字符串,輸入列表);
常用基本參數(shù)對照:
%d:讀入一個十進制整數(shù).
%i :讀入十進制,八進制,十六進制整數(shù),與%d類似,但是在編譯時通過數(shù)據(jù)前置來區(qū)分進制,如加入“0x”則是十六進制,加入“0”則為八進制。例如串“031”使用%d時會被算作31,但是使用%i時會算作25.
%u:讀入一個無符號十進制整數(shù).
%f %F %g %G : 用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入.
%x %X: 讀入十六進制整數(shù).
%o': 讀入八進制整數(shù).
%s : 讀入一個字符串,遇空格結(jié)束。
%c : 讀入一個字符。無法讀入空值??崭窨梢员蛔x入。
③
fprintf()
fprintf是C/C++中的一個格式化寫-庫函數(shù),位于頭文件<stdio.h>中,其作用是格式化輸出到一個流/文件中;函數(shù)原型為int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函數(shù)根據(jù)指定的格式(format)向輸出流(stream)寫入數(shù)據(jù)(argument)。
2.fprintf(stdout,“hello world\n”)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:fgets(),fscanf(),fprintf()-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.rwnh.cn/article12/dsccgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站內(nèi)鏈、外貿(mào)建站、網(wǎng)站策劃、網(wǎng)站改版、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容