printf是標(biāo)準(zhǔn)輸出流的輸出函數(shù),用來向屏幕這樣的標(biāo)準(zhǔn)輸出設(shè)備輸出,而fprintf則是向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件或是相當(dāng)于文件的設(shè)備上
printf是有緩沖的輸出,fprintf沒有緩沖
fprintf()傳送輸出到一個(gè)流中的函數(shù)
原形:int fprintf(FILE *stream,const char *format[,argument,...])
功能
、谙蝻@示器輸出錯誤信息
使用形式:
、賔printf(文件指針,"輸出格式",輸出項(xiàng)系列);
、趂printf(stderr,"錯誤信息");
使用實(shí)例:fprintf(stream,"%d %c %f",i,c,f);
其中定義FILE *stream;
int i; char c; float f;
返回值:成功則返回輸出的字節(jié)數(shù),錯誤則返回EOF。
頭文件:stdio.h
===================================================
sprintf()格式化輸出到數(shù)組的函數(shù)
原形∶int sprintf(buf,format,arg_list)
其中char *buf;
功能∶把a(bǔ)rg_list參量的值按format的格式輸出到buf中。
例∶sprintf(buffer,"相對扇區(qū)號∶%s(其中∶柱面號為%d/磁頭號為%d/扇區(qū)號為%d)",string,cyls,head,sector);
其中char buffer[100];
char *string=" ";
int cyls,head,sector;
返回值∶實(shí)際寫入數(shù)組的字符個(gè)數(shù)。
頭文件∶stdio.h
sprintf 是個(gè)變參函數(shù),定義如下:
int sprintf(char *buffer,const char *format [, argument] ... );
除了前兩個(gè)參數(shù)類型固定外,后面可以接任意多個(gè)參數(shù)。而它的精華,顯然就在第二個(gè)參數(shù):
格式化字符串上。
printf 和sprintf 都使用格式化字符串來指定串的格式,在格式串內(nèi)部使用一些以“%”開頭的
格式說明符(format specifications)來占據(jù)一個(gè)位置,在后邊的變參列表中提供相應(yīng)的變量,最終
函數(shù)就會用相應(yīng)位置的變量來替代那個(gè)說明符,產(chǎn)生一個(gè)調(diào)用者想要的字符串。
格式化數(shù)字字符串
sprintf 最常見的應(yīng)用之一莫過于把整數(shù)打印到字符串中....
格式化讀寫函數(shù)fscanf和fprintf
fscanf函數(shù),fprintf函數(shù)與前面使用的scanf和printf 函數(shù)的功能相似,都是格式化讀寫函數(shù)。 兩者的區(qū)別在于 fscanf 函數(shù)和fprintf函數(shù)的讀寫對象不是鍵盤和顯示器,而是磁盤文件。這兩個(gè)函數(shù)的調(diào)用格式為: fscanf(文件指針,格式字符串,輸入表列); fprintf(文件指針,格式字符串,輸出表列); 例如:
fscanf(fp,"%d%s",&i,s);
fprintf(fp,"%d%c",j,ch);
用fscanf和fprintf函數(shù)也可以完成例10.6的問題。修改后的程序如例10.7所示。
相關(guān)推薦:2010軟考系統(tǒng)分析師考試重點(diǎn)與難點(diǎn):投資回報(bào)率北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |