函數(shù)名: fscanf
成都創(chuàng)新互聯(lián)公司專(zhuān)注于民和網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供民和營(yíng)銷(xiāo)型網(wǎng)站建設(shè),民和網(wǎng)站制作、民和網(wǎng)頁(yè)設(shè)計(jì)、民和網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造民和網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供民和網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
功 能: 從一個(gè)流中執(zhí)行格式化輸入,fscanf遇到空格和換行時(shí)結(jié)束,注意空格時(shí)也結(jié)束。這與fgets有區(qū)別,fgets遇到空格不結(jié)束。
返回值:整型,成功返回讀入的參數(shù)的個(gè)數(shù),失敗返回EOF(-1)。
用法:
1 int fscanf(FILE*stream,constchar*format,[argument...]);
FILE *stream:文件指針;
char *format:格式字符串;
[argument...]:輸入列表。
例如:
FILE* fp;
char a[10];
int b;
double c;
fscanf(fp , "%s %d %lf" , a , b , c);
和scanf一樣,格式化串的空格不代表讀取的子串有空格,存放讀取數(shù)據(jù)的參數(shù)都是指針。
擴(kuò)展閱讀,C語(yǔ)言中文件的讀取和寫(xiě):
FILE *pFile=fopen("1.txt","r"); //獲取文件的指針
char *pBuf; //定義文件指針
fseek(pFile,0,SEEK_END); //把指針移動(dòng)到文件的結(jié)尾 ,獲取文件長(zhǎng)度
int len=ftell(pFile); //獲取文件長(zhǎng)度
pBuf=new char[len+1]; //定義數(shù)組長(zhǎng)度
rewind(pFile); //把指針移動(dòng)到文件開(kāi)頭 因?yàn)槲覀円婚_(kāi)始把指針移動(dòng)到結(jié)尾,如果不移動(dòng)回來(lái) 會(huì)出錯(cuò)
fread(pBuf,1,len,pFile); //讀文件
pBuf[len]=0; //把讀到的文件最后一位 寫(xiě)為0 要不然系統(tǒng)會(huì)一直尋找到0后才結(jié)束
MessageBox(pBuf); //顯示讀到的數(shù)據(jù)
fclose(pFile); // 關(guān)閉文件
是的,在使用完一個(gè)文件后應(yīng)該關(guān)閉它,這應(yīng)該成為一個(gè)習(xí)慣。如果不關(guān)閉文件,可能會(huì)丟失數(shù)據(jù)。因?yàn)樵谙蛭募?xiě)數(shù)據(jù)時(shí),實(shí)現(xiàn)將數(shù)據(jù)輸?shù)骄彌_區(qū),待緩沖區(qū)充滿(mǎn)后才正式輸出給文件,如果當(dāng)數(shù)據(jù)未充滿(mǎn)緩沖區(qū)而程序結(jié)束運(yùn)行,就會(huì)將緩沖區(qū)中的數(shù)據(jù)丟失。用fclose函數(shù)關(guān)閉文件,他先將緩沖區(qū)中的數(shù)據(jù)輸出到磁盤(pán)文件然后才釋放文件指針變量,從而避免了數(shù)據(jù)丟失。
關(guān)閉文件的格式是:
fclose(文件指針);
tail是個(gè)指向鏈表尾結(jié)點(diǎn)的指針。
tail-pNext=p;就是把p指向的結(jié)點(diǎn)放到鏈表尾結(jié)點(diǎn)的后面,這樣p指向的結(jié)點(diǎn)就成為了鏈表的尾結(jié)點(diǎn)。
tail=p;因?yàn)閠ail始終要指向鏈表尾結(jié)點(diǎn),在p指向的結(jié)點(diǎn)已經(jīng)成為尾結(jié)點(diǎn)的情況下,tail就要指向p指向的結(jié)點(diǎn)。
fclose(fp):函數(shù)fclose()關(guān)閉給出的文件流, 釋放已關(guān)聯(lián)到流的所有緩沖區(qū). fclose()執(zhí)行成功時(shí)返回0,否則返回EOF.
加上這一句是為了保護(hù)你的文件 如果不寫(xiě)這句 那么別的程序也可以隨意的對(duì)該文件進(jìn)行寫(xiě)入 這樣你的文件就是亂套了。
首先樓主要搞清楚getchar()是什么意思
getchar() 相當(dāng)于 getc(stdin)也就是從stdin緩沖流里面讀數(shù)據(jù) 你寫(xiě)這句也是為了防止你輸入字符后后面還有殘余
但是你第二個(gè)是讀文件數(shù)據(jù)流 根本就沒(méi)有讀緩沖流 所以不寫(xiě)那句也可以的
不知道樓主明白否?
補(bǔ)充回答:
樓主沒(méi)有弄明白什么是EOF EOF常被作為文件結(jié)束的標(biāo)志。EOF 的值通常為 -1
它不是字符串 他相當(dāng)于宏定義 它是不會(huì)被寫(xiě)入到文件當(dāng)中的
如樓主還有疑問(wèn) 直接hi我吧
本文題目:c語(yǔ)言讀文件子函數(shù) c文件讀寫(xiě)函數(shù)
URL網(wǎng)址:http://jinyejixie.com/article42/dochghc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、標(biāo)簽優(yōu)化、網(wǎng)站收錄、移動(dòng)網(wǎng)站建設(shè)、建站公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容