C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用
fprintf()函數(shù)
在C語(yǔ)言中常用使用的打印函數(shù)是printf()函數(shù),這個(gè)多用于給控制臺(tái)打印數(shù)據(jù),如果需要將內(nèi)容直接打印到某個(gè)文件中的時(shí)候,可以使用fprintf()函數(shù)。它有兩個(gè)參數(shù),第一個(gè)參數(shù)為待寫(xiě)入的文件指針,第二個(gè)參數(shù)為待寫(xiě)入的內(nèi)容。下面通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)演示它的用法。
int main() { FILE *in,*out; int ret; char ch; /* 打開(kāi)文件 */ in = fopen("123.txt","a+"); if(in == NULL) puts("打開(kāi)失??!"); else puts("打開(kāi)成功!"); fprintf(in," hello world"); /* 關(guān)閉文件 */ ret = fclose(in); if(ret == 0) puts("關(guān)閉成功!"); else puts("關(guān)閉失??!"); system("pause"); return 0; }
首先以追加的方式打開(kāi)一個(gè)文本文件123.txt,然后在使用fprintf()函數(shù)向文件里面追加字符串。最后關(guān)閉打開(kāi)的文件。
程序執(zhí)行完成之后,打開(kāi)123.txt文件,可以看到程序已經(jīng)在原來(lái)的字符串后面追加了一個(gè)字符串。fprintf()函數(shù)中第一個(gè)參數(shù)的文件,不僅僅指的是文檔,也可以是顯示器。在C語(yǔ)言中鍵盤(pán)和顯示器也可以是文件。
比如在上面的例子中,可以將fprintf()的第一個(gè)參數(shù)修改為stdout,這樣字符串就會(huì)打印在終端上。
fscanf()函數(shù)
scanf()函數(shù)用于從鍵盤(pán)讀取數(shù)據(jù),fscanf()函數(shù)則用來(lái)從文件中讀取數(shù)據(jù)。比如可以將上面的例子修改為,使用fscanf()函數(shù)從文件中讀取數(shù)據(jù)。
int main() { FILE *in,*out; int ret; char ch; char str1[30],str2[30],str3[30]; /* 打開(kāi)文件 */ in = fopen("123.txt","r"); if(in == NULL) puts("打開(kāi)失??!"); else puts("打開(kāi)成功!"); fscanf(in,"%s %s %s",str1,str2,str3); puts(str1); puts(str2); puts(str3); /* 關(guān)閉文件 */ ret = fclose(in); if(ret == 0) puts("關(guān)閉成功!"); else puts("關(guān)閉失??!"); system("pause"); return 0; }
打開(kāi)123.txt文件,然后使用fscanf()函數(shù)讀取文件中的字符串,然后再將讀取的字符串打印出來(lái)。這里fscanf()中有三個(gè)參數(shù),第一個(gè)參數(shù)是要讀取的文件指針,第二個(gè)參數(shù)是要讀取數(shù)據(jù)的格式,第三個(gè)參數(shù)是讀取的數(shù)據(jù)存放位置。由于123.txt文件中總共有3組字符串,所以第二個(gè)參數(shù)里面寫(xiě)了三次,同樣第三個(gè)參數(shù)存儲(chǔ)字符串的數(shù)組也寫(xiě)了三個(gè)。因?yàn)閒scanf()函數(shù)在讀取字符串的時(shí)候是以空格結(jié)束的,如果只使用一個(gè)%s的話(huà),只能讀出來(lái)第一個(gè)字符串。
fscanf()函數(shù)也可以從鍵盤(pán)讀取數(shù)據(jù),將fscanf()函數(shù)的第一個(gè)參數(shù)改為標(biāo)準(zhǔn)輸入stdin,就可以從鍵盤(pán)讀取數(shù)據(jù)了。
運(yùn)行程序后,通過(guò)鍵盤(pán)輸入三個(gè)字符串,以空格隔開(kāi),按下回車(chē)鍵之后,就會(huì)打印出通過(guò)fscanf()函數(shù)從標(biāo)準(zhǔn)輸入設(shè)備,也就是從鍵盤(pán)上讀取的三個(gè)字符串了
到此這篇關(guān)于C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)C語(yǔ)言fprintf()函數(shù)和fscanf()函數(shù) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C++ 關(guān)于MFC List Control 控件的總結(jié)
這篇文章主要介紹了C++ 關(guān)于MFC List Control 控件的總結(jié)的相關(guān)資料,十分的詳細(xì),有需要的朋友可以參考下2015-06-06關(guān)于C++中的static關(guān)鍵字的總結(jié)
C++的static有兩種用法:面向過(guò)程程序設(shè)計(jì)中的static和面向?qū)ο蟪绦蛟O(shè)計(jì)中的static。前者應(yīng)用于普通變量和函數(shù),不涉及類(lèi);后者主要說(shuō)明static在類(lèi)中的作用2013-09-09類(lèi)成員函數(shù)的重載、覆蓋與隱藏之間的區(qū)別總結(jié)
以下是對(duì)類(lèi)成員函數(shù)的重載、覆蓋與隱藏之間的區(qū)別進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友可以過(guò)來(lái)參考下。希望對(duì)大家有所幫助2013-10-10詳細(xì)聊聊c語(yǔ)言中的緩沖區(qū)問(wèn)題
緩沖區(qū)又稱(chēng)為緩存,它是內(nèi)存空間的一部分,也就是說(shuō)在內(nèi)存空間中預(yù)留了一定的存儲(chǔ)空間,這些存儲(chǔ)空間用來(lái)緩沖輸入或輸出的數(shù)據(jù),這部分預(yù)留的空間就叫做緩沖區(qū),這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中緩沖區(qū)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2021-11-11