:: reverse dictionary ::
※ソースファイルについて
ファイルに書式付きで文字列や数値を書き込むには、fprintf 関数を使います。
#include<stdio.h>#include<stdlib.h>
FILE *fp;charch = 'C';charstr[] = "プログラム";intnum = 123;doubledbl = 0.456789; fp = fopen("sample.txt", "w");if(fp == NULL) { printf("sample.txt を開けませんでした。\n");returnEXIT_FAILURE; } /* 書き込み */ fprintf(fp, "%c%s\n%d行表示に%f秒", ch, str, num, dbl); fclose(fp);
実行すると sample.txt の内容が
Cプログラム 123行表示に0.46789秒
になります。
ワイド文字列の場合は fwprintf 関数を使います。
#include<locale.h>#include<stdio.h>#include<stdlib.h>
FILE *fp; wchar_t ch = L'C'; wchar_t str[] = L"プログラム";intnum = 123;doubledbl = 0.456789; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ fp = fopen("sample.txt", "w");if(fp == NULL) { wprintf(L"sample.txt を開けませんでした。\n");returnEXIT_FAILURE; } /* 書き込み */ fwprintf(fp, L"%c%s\n%d行表示に%f秒", ch, str, num, dbl); fclose(fp);
実行すると sample.txt の内容が
Cプログラム 123行表示に0.46789秒
になります。
intfprintf(FILE *o,const char*f)intfprintf(FILE *o,const char*f, v1, v2, ..., vn)intfwprintf(FILE *o,constwchar_t *f)intfwprintf(FILE *o,constwchar_t *f, v1, v2, ..., vn)
v1 〜 vn の値を書式 f で書式化し、出力ストリーム o に書き込みます。
書式 f の中に指定する %s や %d などのパラメータが、v1 〜 vn の値によって置き換えられます。 パラメータは、左から順に v1 〜 vn の値に対応します。
v1 〜 vn の値を省略した場合は、書式 f をそのまま出力ストリーム o に書き込みます。
%s や %d などの主なパラメータは、次のとおりです。
| パラメータ | 置き換わる値 |
|---|---|
| %c | 文字 |
| %s | 文字列 |
| %d | 10進数 |
| %o | 8進数 |
| %x | 16進数 アルファベットは小文字( a 〜 f ) |
| %X | 16進数 アルファベットは大文字( A 〜 F ) |
| %f | 小数点数 例:123.456789 |
| %e | 浮動小数点数 例:1.234568e+002 |
| %p | 指定した変数のアドレス 例:0012FF60 |
文字列や数値のパラメータには、桁数を指定できます。
| パラメータ | 置き換わる値 | 例 | |
|---|---|---|---|
| 値 | 書式 "[値]" | ||
| %4d |
4桁の10進数 空いている桁は半角スペース |
12 | [ 12] |
| %04d |
4桁の10進数 空いている桁は 0 |
123 | [0123] |
| %.4f | 小数部4桁の小数点数 | 1.23 | [1.2300] |
| %.4s |
fprintf は4バイトの文字列fwprintf は4文字の文字列
|
CとC++ |
fprintf は [CとC]fwprintf は [CとC+]
|
なお、桁数を超える数値を指定しても、切り捨てられることはありません。
(%4d で 12345 を指定した場合は、そのまま 12345 に置き換えられます)
o … 出力ストリームのポインタ
f … 書式
v1 〜 vn … 書式化する値
fprintf は格納したバイト数、fwprintf は格納した文字数
(最後の NULL文字は含みません)
使用できるパラメータは printf 関数、wprintf 関数と同じです。
printf 関数、wprintf 関数 … 文字列や数値を書式付きで画面に出力する
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com