上一節(jié),我們學(xué)會(huì)了打開文件之后,如果打開模式是寫,那么可以用fprintf函數(shù)來進(jìn)行寫,下面來介紹fprintf函數(shù),它的原型是:
int fprintf (FILE* stream, const char*format, [argument])
該函數(shù)是一個(gè)格式化寫入的庫函數(shù),可以看到,除了長得和printf函數(shù)很像以外,參數(shù)也非常像,多了一個(gè)第一個(gè)參數(shù)文件指針,即第一步打開文件時(shí)得到的文件指針,后面的參數(shù)和printf一樣,按照指定的格式將數(shù)據(jù)寫入文件。例如:
fprintf(fp,"%s","www.sztianhecheng.cn");
這句代碼的意思是將字符串"www.sztianhecheng.cn"以%s的格式寫入fp所指向的文件中。
控制符 | 作用 |
%c | 字符 |
%d 或 %i | 有符號(hào)十進(jìn)制整數(shù) |
%e | 使用 e 字符的科學(xué)科學(xué)記數(shù)法(尾數(shù)和指數(shù)) |
%E | 使用 E 字符的科學(xué)科學(xué)記數(shù)法(尾數(shù)和指數(shù)) |
%f | 十進(jìn)制浮點(diǎn)數(shù) |
%g | 自動(dòng)選擇 %e 或 %f 中合適的表示法 |
%G | 自動(dòng)選擇 %E 或 %f 中合適的表示法 |
%o | 有符號(hào)八進(jìn)制 |
%s | 字符的字符串 |
%u | 無符號(hào)十進(jìn)制整數(shù) |
%x | 無符號(hào)十六進(jìn)制整數(shù) |
%X | 無符號(hào)十六進(jìn)制整數(shù)(大寫字母) |
%p | 指針地址 |
%n | 無輸出 |
% | 字符 |
更多的格式可以參照printf的用法中的格式,可以通用。
而返回值為整型,如果寫入成功則返回寫入字符的格式,否則返回一個(gè)負(fù)數(shù)。
需要注意理解的是,fprintf函數(shù)雖然和printf函數(shù)很像,表示輸出,但準(zhǔn)確說是是寫入的意思,是指程序向文件里寫,要清楚數(shù)據(jù)的流向。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程