#include <stdio.h> int fprintf(FILE *stream, const char *format [,argument list]) stream : FILE 構造体へのポインタ format : フォーマット argument : 引数(出力したい変数等のリスト) format は, 1)一般の文字:そのまま出力されます 2)エスケープシーケンス:その記号によって,対応する処置が執られます \a : ビープ音(警告) \b : バックスペース \f : フォームフィード(ページ替え) \n : 改行 \r : 復帰 \t : 水平タブ \v : 垂直タブ \' : 単一引用符 \" : 2 重引用符 \\ : 円マーク \? : 疑問符 \ooo : 8 進表記の ASCII 文字 \xhhh : 16 進表記の ASCII 文字 3)フォーマット指定:引数をどのように出力するかを決めます の 3 つから構成されます. フォーマット指定は,常に % 記号で始まり,一般的には次のような形をして います. %[flags][width][.precision][{h|l|ll|L}]type 例えば, %+10.3lf は,浮動小数点数を出力するため(最後の f がそれを意味している)のフォ ーマット指定であり,+ か - の符号を必ず付け( + ),出力幅は 10 桁 ( 10 ),小数点以下は 3 桁まで表示( .3 )し,この数が倍精度である( l ) ことを意味しています. type は必須の項目で,出力する引数が文字か,数値か等を決定します. 以下に示すような種類があります. 文字 データ型 出力フォーマット d int 符号付き 10 進数 i int 符号付き 10 進数 u int 符号無し 10 進数 o int 符号無し 8 進数 x int 符号無し 16 進数( abcdef ) X int 符号無し 16 進数( ABCDEF ) f double [-]ddd.ddd.全体の出力文字数は width,また小数点以 下の桁数は .precision で決まります. e double [-]d.dddde[+|-]ddd.全体の出力文字数は width (符号 や e[+|-]ddd の項も含まれることに注意してください), また小数点以下の桁数は .precision で決まります. E double [-]d.ddddE[+|-]ddd g double f または e フォーマットの内,短い方で出力( g ) G double f または E フォーマットの内,短い方で出力( G ) c int 1 個の文字 s 文字列 最初の NULL 文字( '\0' )まで,または,.precision で指 定された範囲まで表示されます. flags は,出力位置の調整等を行い,以下の種類があります. - 指定された出力幅内で結果を左詰めにします(デフォルトは右詰め です) + 出力が符号付きの場合は,値の前に必ず + か - を付けます(デフォ ルトは,負の場合だけ - 記号を付けます) 0 左側の空白に 0 が埋められます. width は,出力する最小限の文字数を指定します. precision は出力するデータ型によって以下のような意味を持って います. diuoxX 表示される最小限の桁数を表します.出力文字数がこの桁数より 少ない場合は,左側に 0 が充填されます. eEf 小数点以下の桁数を指定します. gG 出力される最大限の有効桁数を指定します s 出力される最大限の文字数を指定します.この値を超えた文字は 出力されません. h,l, ll,L は,以下のように,引数のサイズを規定します h 引数が,short int であることを示します l 引数が,long int であることを示します ll 引数が,long long int であることを示します L 引数が,long double であることを示します
#include <stdio.h> int main() { char ch = 'h'; char *string = "computer"; int i1 = 123; int i2 = -10; long l1 = -20; int hex = 0x10; int oct = 010; int dec = 10; double fp = 25.736; FILE *stream; /* ファイルのオープン */ stream = fopen("data", "w"); /* 整数 */ fprintf(stream, "整数\n"); fprintf(stream, "%5d %+5d %5d %+5d\n", i1, i1, i2, i2); fprintf(stream, "%10ld %010ld %10lu %lo %lx\n", l1, l1, l1, l1, l1); /* 文字 */ fprintf(stream, "文字\n"); fprintf(stream, "%10c%5c\n", ch, ch); /* 文字列 */ fprintf(stream, "文字列\n"); fprintf(stream, "%25s\n%25.4s\n", string, string); /* 実数 */ fprintf(stream, "実数\n"); fprintf(stream, "%15f %15.2f %e %E\n", fp, fp, fp, fp); /* 16進,8進,10進 */ fprintf(stream,"16進,8進,10進\n"); fprintf(stream,"%10i %10i %10i\n", hex, oct, dec); return 0; }
整数 123 +123 -10 -10 -20 -000000020 4294967276 37777777754 ffffffec 文字 h h 文字列 computer comp 実数 25.736000 25.74 2.573600e+01 2.573600E+01 16進,8進,10進 16 8 10
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |