因?yàn)閒printf和printf類似,輸出的內(nèi)容取決于字符串和參數(shù),但fprintf的操作對(duì)象是文件而不是標(biāo)準(zhǔn)輸出設(shè)備。
創(chuàng)新互聯(lián)是專業(yè)的船營網(wǎng)站建設(shè)公司,船營接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行船營網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
格式化輸出就是根據(jù)“格式化字符串”的內(nèi)容決定“具體輸出”的內(nèi)容,比如
printf("%s,?hello!",?"XXX");
"%s, hello!"就是格式化字符串,有點(diǎn)像模板,只是告訴函數(shù)一個(gè)輪廓,具體的細(xì)節(jié)由后面的參數(shù)("XXX")決定。所以具體輸出是“XXX, hello!”,這個(gè)你應(yīng)該知道吧?
用法示例:將數(shù)據(jù)輸入到文件1.txt中并打開1.txt文件。
#include?stdio.h
#include?stdlib.h
FILE*?stream;
int?main()
{
int?i?=?10;
double?fp?=?1.5;
char?s[]?=?"this?is?a?string";
char?c?=?'\n';
stream?=?fopen("1.txt",?"w");
fprintf(stream,?"%s%c",?s,?c);
fprintf(stream,?"%d\n",?i);
fprintf(stream,?"%f\n",?fp);
fclose(stream);
system("1.txt");
return?0;
}
擴(kuò)展資料:
功能
fprintf()函數(shù)根據(jù)指定的格式(format),向輸出流(stream)寫入數(shù)據(jù)(argument)。
函數(shù)說明
fprintf( )會(huì)根據(jù)參數(shù)format 字符串來轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果輸出到參數(shù)stream 指定的文件中,直到出現(xiàn)字符串結(jié)束('\0')為止。
用法詳解
C 庫函數(shù)int fprintf(FILE *stream, char *format[, argument,...]);
format 標(biāo)簽屬性是:%[flags][width][.precision][length]specifier
參考資料來源:百度百科-fprintf
sprintf、fprintf和printf這三個(gè)函數(shù)區(qū)別為:輸出不同、參數(shù)不同、重定向不同。
一、輸出不同
1、sprintf函數(shù):sprintf函數(shù)是把格式字符串輸出到指定文件設(shè)備中。
2、fprintf函數(shù):fprintf函數(shù)是把格式字符串輸出到指定字符串中。
3、printf函數(shù):printf函數(shù)是把格式字符串輸出到標(biāo)準(zhǔn)輸出中。
二、參數(shù)不同
1、sprintf函數(shù):sprintf函數(shù)參數(shù)比printf多一個(gè)char*。
2、fprintf函數(shù):fprintf函數(shù)參數(shù)比printf多一個(gè)文件指針FILE*。
3、printf函數(shù):printf函數(shù)參數(shù)為字符串string。
三、重定向不同
1、sprintf函數(shù):sprintf函數(shù)不可以重定向。
2、fprintf函數(shù):fprintf函數(shù)不可以重定向。
3、printf函數(shù):printf函數(shù)可以重定向。
C語言文件 fprintf函數(shù)與printf函數(shù)的作用相仿,都是格式化讀寫函數(shù)。所不同的是,fprintf函數(shù)的讀寫對(duì)象是磁盤文件,即是文件輸出命令。而printf函數(shù)的讀寫對(duì)象是終端。
具體說來,fprintf函數(shù)的功能是:把a(bǔ)rgs的值以format指定的格式輸出到fp所制定的文件中。
它的原型是:
int fprintf(fp,format, args,…)
FILE *fp;
char *format;
返回值類型:整型,為實(shí)際輸出的字符數(shù)
他的調(diào)用方式是:fprintf(文件指針,格式字符串,輸出表列);
格式字符包括:%d, %c,%f等,與printf的格式字符相同。
需要說明的是,此函數(shù)必須先將文件打開,并指明寫入方式后才能使用。這個(gè)函數(shù)使用方便、易于理解,但是寫入時(shí)要將ASCII碼轉(zhuǎn)換為二進(jìn)制,花費(fèi)時(shí)間較多,因此在內(nèi)存與磁盤頻繁交換數(shù)據(jù)時(shí),最好不用fprintf函數(shù),而用fwrite函數(shù)。用完該函數(shù)后,還要關(guān)閉打開的文件。
fwrite是向流中寫入數(shù)據(jù),而fprintf是向流中寫入格式數(shù)據(jù)。兩者的共同點(diǎn)為向流中寫入數(shù)據(jù),至于區(qū)別可以看看兩者的申明:
size_tfwrite(
constvoid*buffer,
size_tsize,
size_tcount,
file*stream
);
intfprintf(
file*stream,
constchar*format[,
argument]...
);
前者fwrite寫入流stream中的數(shù)據(jù)是buffer指定的內(nèi)容,內(nèi)容的字節(jié)大小分別由size和count兩個(gè)參數(shù)來指定,因此寫入流stream中的內(nèi)容有可能是亂碼,但是有效的數(shù)據(jù)。
后者fprintf寫入流stream中的數(shù)據(jù)則由argument來指定,并且這些argument的內(nèi)容分別由format指定的格式來顯示,因此寫入stream的內(nèi)容通常來說是文本字符流,當(dāng)然,也允許寫入格式亂碼。
兩者都可以將文本寫入流stream中。比如:
fwrite("helloworld!",1,12,fp);
與
fprintf(fp,"%s","helloworld!");
等價(jià)。
分享名稱:c語言函數(shù)fprintf C語言函數(shù)類型
網(wǎng)頁URL:http://muchs.cn/article16/hphsgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站建設(shè)、搜索引擎優(yōu)化、企業(yè)建站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)