fprintf是C/C++中的一個格式化庫函式,位於頭檔案<cstdio>或<bits/stdc++.h>中,其作用是格式化輸出到一個流/檔案中;函式原型為int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函式根據指定的格式(format)向輸出流(stream)寫入數據(argument)。
基本介紹
- 中文名:fprintf
- 外文名:fprintf
- 功 能:傳送格式化輸出到一個檔案中
- 成功返值:輸出字元數
- 錯誤返回值:返回負值
- 頭檔案:cstdio 舊版使用 stdio.h
參數說明,函式說明,功 能,用 法,規定符,程式示例VC,
參數說明
int fprintf (FILE* stream, const char*format, [argument])
FILE*stream:檔案指針
const char* format:輸出格式
[argument]:附加參數列表
函式說明
fprintf( )會根據參數format 字元串來轉換並格式化數據, 然後將結果輸出到參數stream 指定的檔案中, 直到出現字元串結束('\0')為止。
需要注意的一點是,頭檔案<stdio.h>為舊版C語言用法,是錯誤的。
功 能
傳送格式化輸出到一個檔案中與印表機輸出
用 法
#include <cstdio>
#include<cstdlib>
int fprintf( FILE *stream, const char *format, ... );
fprintf()函式根據指定的format(格式)傳送信息(參數)到由stream(流)指定的檔案. fprintf()只能和printf()一樣工作. fprintf()的返回值是輸出的字元數,發生錯誤時返回一個負值.
規定符
%d, %i 十進制有符號整數
%u 十進制無符號整數
%f 浮點數
%s 字元串
%c 單個字元
%p指針的值
%e, %E 指數形式的浮點數
%x無符號以小寫十六進制表示的整數
%X 無符號以大寫十六進制表示的整數
%o 無符號以八進制表示的整數
%g 自動選擇合適的表示法
程式示例VC
函式範例
//...#include <cstdio>int main(void) { FILE *FSPOINTER; char STRBUFF[16] = "Hello World."; //... FSPOINTER = fopen("HELLO.TXT", "w+"); //... fprintf(FSPOINTER, "%s", STRBUFF); //... return 0;}輸出至檔案HELLO.TXT:Hello World
示例一
#include <cstdio>int main(void){ FILE *in,*out; in = fopen("\\AUTOEXEC.BAT", "rt"); if(in == NULL) { fprintf(in, "Can not open inputfile.\n"); return 1; } out = fopen("\\AUTOEXEC.BAT", "wt"); if(out == NULL) { fprintf(out, "Can not open outputfile.\n"); return 1; } while(!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); return 0;}
示例二
#include <cstdio>#include <cstdlib>#include <cprocess>FILE* stream;int main(void){ int i = 10; double fp = 1.5; char s[] = "this is a string"; char c = '\n'; stream = fopen("fprintf.out", "w"); fprintf(stream, "%s%c", s, c); fprintf(stream, "%d\n", i); fprintf(stream, "%f\n", fp); fclose(stream); system("typefprintf.out"); return 0;}
輸出至檔案fprintf.out:
this is a string101.500000
示例三
#include <cstdio>int main(){ FILE* fp; int i = 617; char* s = "that is a good new"; fp = fopen("text.dat", "w"); fputs("total", fp); fputs(":", fp); fprintf(fp, "%d\n", i); fprintf(fp, "%s", s); fclose(fp); return 0;}輸出至檔案text.dat:
total:617that is a good new