printf是標準輸出流的輸出函數(shù),用來向屏幕這樣的標準輸出設(shè)備輸出,而fprintf則是向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件或是相當于文件的設(shè)備上
printf是有緩沖的輸出,fprintf沒有緩沖
fprintf()傳送輸出到一個流中的函數(shù)
原形:int fprintf(FILE *stream,const char *format[,argument,...])
功能
、谙蝻@示器輸出錯誤信息
使用形式:
①fprintf(文件指針,"輸出格式",輸出項系列);
②fprintf(stderr,"錯誤信息");
使用實例: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;
功能∶把arg_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ù)。
頭文件∶stdio.h
sprintf 是個變參函數(shù),定義如下:
int sprintf(char *buffer,const char *format [, argument] ... );
除了前兩個參數(shù)類型固定外,后面可以接任意多個參數(shù)。而它的精華,顯然就在第二個參數(shù):
格式化字符串上。
printf 和sprintf 都使用格式化字符串來指定串的格式,在格式串內(nèi)部使用一些以“%”開頭的
格式說明符(format specifications)來占據(jù)一個位置,在后邊的變參列表中提供相應(yīng)的變量,最終
函數(shù)就會用相應(yīng)位置的變量來替代那個說明符,產(chǎn)生一個調(diào)用者想要的字符串。
格式化數(shù)字字符串
sprintf 最常見的應(yīng)用之一莫過于把整數(shù)打印到字符串中....
格式化讀寫函數(shù)fscanf和fprintf
fscanf函數(shù),fprintf函數(shù)與前面使用的scanf和printf 函數(shù)的功能相似,都是格式化讀寫函數(shù)。 兩者的區(qū)別在于 fscanf 函數(shù)和fprintf函數(shù)的讀寫對象不是鍵盤和顯示器,而是磁盤文件。這兩個函數(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)分析師考試重點與難點:投資回報率北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |