C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用
fprintf()函數(shù)
在C語言中常用使用的打印函數(shù)是printf()函數(shù),這個(gè)多用于給控制臺(tái)打印數(shù)據(jù),如果需要將內(nèi)容直接打印到某個(gè)文件中的時(shí)候,可以使用fprintf()函數(shù)。它有兩個(gè)參數(shù),第一個(gè)參數(shù)為待寫入的文件指針,第二個(gè)參數(shù)為待寫入的內(nèi)容。下面通過一個(gè)簡單的例子來演示它的用法。
int main()
{
FILE *in,*out;
int ret;
char ch;
/* 打開文件 */
in = fopen("123.txt","a+");
if(in == NULL)
puts("打開失??!");
else
puts("打開成功!");
fprintf(in," hello world");
/* 關(guān)閉文件 */
ret = fclose(in);
if(ret == 0)
puts("關(guān)閉成功!");
else
puts("關(guān)閉失?。?);
system("pause");
return 0;
}
首先以追加的方式打開一個(gè)文本文件123.txt,然后在使用fprintf()函數(shù)向文件里面追加字符串。最后關(guān)閉打開的文件。

程序執(zhí)行完成之后,打開123.txt文件,可以看到程序已經(jīng)在原來的字符串后面追加了一個(gè)字符串。fprintf()函數(shù)中第一個(gè)參數(shù)的文件,不僅僅指的是文檔,也可以是顯示器。在C語言中鍵盤和顯示器也可以是文件。

比如在上面的例子中,可以將fprintf()的第一個(gè)參數(shù)修改為stdout,這樣字符串就會(huì)打印在終端上。

fscanf()函數(shù)
scanf()函數(shù)用于從鍵盤讀取數(shù)據(jù),fscanf()函數(shù)則用來從文件中讀取數(shù)據(jù)。比如可以將上面的例子修改為,使用fscanf()函數(shù)從文件中讀取數(shù)據(jù)。
int main()
{
FILE *in,*out;
int ret;
char ch;
char str1[30],str2[30],str3[30];
/* 打開文件 */
in = fopen("123.txt","r");
if(in == NULL)
puts("打開失??!");
else
puts("打開成功!");
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;
}
打開123.txt文件,然后使用fscanf()函數(shù)讀取文件中的字符串,然后再將讀取的字符串打印出來。這里fscanf()中有三個(gè)參數(shù),第一個(gè)參數(shù)是要讀取的文件指針,第二個(gè)參數(shù)是要讀取數(shù)據(jù)的格式,第三個(gè)參數(shù)是讀取的數(shù)據(jù)存放位置。由于123.txt文件中總共有3組字符串,所以第二個(gè)參數(shù)里面寫了三次,同樣第三個(gè)參數(shù)存儲(chǔ)字符串的數(shù)組也寫了三個(gè)。因?yàn)閒scanf()函數(shù)在讀取字符串的時(shí)候是以空格結(jié)束的,如果只使用一個(gè)%s的話,只能讀出來第一個(gè)字符串。
fscanf()函數(shù)也可以從鍵盤讀取數(shù)據(jù),將fscanf()函數(shù)的第一個(gè)參數(shù)改為標(biāo)準(zhǔn)輸入stdin,就可以從鍵盤讀取數(shù)據(jù)了。
運(yùn)行程序后,通過鍵盤輸入三個(gè)字符串,以空格隔開,按下回車鍵之后,就會(huì)打印出通過fscanf()函數(shù)從標(biāo)準(zhǔn)輸入設(shè)備,也就是從鍵盤上讀取的三個(gè)字符串了
到此這篇關(guān)于C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)C語言fprintf()函數(shù)和fscanf()函數(shù) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)JPEG格式圖片解析(附代碼)
這篇文章主要為大家詳細(xì)介紹了C++如何實(shí)現(xiàn)JPEG格式圖片解析功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下2023-05-05
詳解C語言中的錯(cuò)誤報(bào)告errno與其相關(guān)應(yīng)用方法
這篇文章主要介紹了C語言中的錯(cuò)誤報(bào)告errno與其相關(guān)應(yīng)用方法,包括errno和strerror以及perror的介紹,需要的朋友可以參考下2015-08-08
C++保存txt文件實(shí)現(xiàn)方法代碼實(shí)例
這篇文章主要介紹了C++保存txt文件實(shí)現(xiàn)方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
對(duì)比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法
這篇文章主要介紹了對(duì)比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法,二者都是用于復(fù)制內(nèi)存內(nèi)容,注意區(qū)別,需要的朋友可以參考下2015-08-08
C++ string類getline()用法實(shí)例詳解
C++ getline()是一種標(biāo)準(zhǔn)庫函數(shù),用于從輸入流中讀取字符串或行,它是<string>標(biāo)頭的一部分,本文介紹C++ string類getline()用法詳解,感興趣的朋友一起看看吧2024-03-03
C語言全面梳理結(jié)構(gòu)體知識(shí)點(diǎn)
結(jié)構(gòu)體是一些值的集合,這些值稱為成員變量,結(jié)構(gòu)體的每個(gè)成員可以是不同類型的變量。本文將通過示例為大家詳細(xì)講講C語言中結(jié)構(gòu)體的使用,需要的可以參考一下2022-07-07

