関数 | |
---|---|
fopen | ストリームを開く |
fclose | ストリームを閉じる |
feof | ストリームのファイルの終わりを検査する |
ferror | ストリームのエラーを検査する |
関数 | 書式 | 入力元 | |
---|---|---|---|
getchar | int getchar(); |
標準ストリーム | 1文字 |
getc ※1 | int getc(FILE *stream); |
指定のストリーム | 1文字 |
gets | char *gets(char *buffer); |
標準ストリーム | 1行 |
標準入力ストリーム (stdin) から、書式付きのデータを読み取れます。
int scanf (const char *format [, argument]... ); int _scanf_l(const char *format, locale_t locale [, argument]... ); int wscanf (const wchar_t *format [, argument]... ); int _wscanf_l(const wchar_t *format, locale_t locale [, argument]... );scanf、_scanf_l、wscanf、_wscanf_l | MSDN
書式付きのデータを、標準出力ストリーム (stdout) へ書き込めます。
int printf ( const char *format [, argument]... ); int _printf_l( const char *format, locale_t locale [, argument]... ); int wprintf ( const wchar_t *format [, argument]... ); int _wprintf_l( const wchar_t *format, locale_t locale [, argument]... );printf、_printf_l、wprintf、_wprintf_l | MSDN
似た関数にfprintfとsprintfがありますが、これらはそれぞれ次のように異なります。
int fprintf( FILE *stream, const char *format [, argument]... ); int fwprintf( FILE *stream, const wchar_t *format [, argument]... ); int sprintf( char *buffer, const char *format [, argument]... ); int swprintf( wchar_t *buffer, size_t count, const wchar_t *format [, argument]... );fprintf、_fprintf_l、fwprintf、_fwprintf_l | MSDN sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l | MSDN
ロケールを指定できる次の形式もあります。
int _fprintf_l( FILE *stream, const char *format, locale_t locale [, argument ]... ); int _fwprintf_l( FILE *stream, const wchar_t *format, locale_t locale [, argument ]... ); int _sprintf_l( char *buffer, const char *format, locale_t locale [, argument ]... ); int _swprintf_l( wchar_t *buffer, size_t count, const wchar_t *format, locale_t locale [, argument ]... );
それぞれの関数には、接尾辞として_sが付加されたバージョンが存在します。
int printf_s( const char *format [, argument ]... ); int fprintf_s( FILE *stream, const char *format [, argument ]... ); int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argument ]... );
安全ではない関数との違いは、書式指定文字列の確認方法にあります。安全ではない方はnullかどうかのみですが、安全な方はその有効性まで確認します。またsprintf_sについては出力バッファのサイズを文字数で指定でき、それが不足するときには空文字列に設定されます。
%[flags] [width] [.precision] [{h | l | ll | w | I | I32 | I64}] type
意味 | 指定する値 | |
---|---|---|
flags | フラグ | - 、+ 、空白、# 、0 |
width | 最小フィールド幅 | * 、10進定数 |
precision | 精度
|
.* 、.10進定数 |
省略可能な変換指定子 | h、l、llなど | |
type | 変換指定子 | d、i、o、u、x、X、fなど |
printf("%+d\n", 123); // +123 printf("%+d\n", -123); // -123 printf("% d\n", 123); // 123 printf("% d\n", -123); // -123 printf("%d\n", 12345); // 12345 printf("%2d\n", 12345); // 12345 printf("%8d\n", 12345); // 12345 printf("%08d\n", 12345); // 00012345
printf("%f\n", 12.3456); // 12.345600 printf("%5.2f\n", 12.3456); // 12.35 printf("%5.8f\n", 12.3456); // 12.34560000 printf("%8.2f\n", 12.3456); // 12.35 printf("%.5f\n", 12.3456); // 12.34560 printf("%8f\n", 12.3456); // 12.345600
printf("%s\n", "ABCDE"); // ABCDE printf("%.3s\n", "ABCDE"); // ABC printf("%.*s\n", 3, "ABCDE"); // ABC
文字 | 対象 | |
---|---|---|
c | 文字 (int型) |
|
C | 文字 (int型) |
|
s | 文字列 (文字型の配列) | nullが出現するまで |
d、i | 整数 (int型) | 符号付き10進数 |
u | 整数 (unsigned int型) | 符号なし10進数 |
x | 整数 (unsigned int型) | 符号なし16進数 (小文字) |
X | 整数 (unsigned int型) | 符号なし16進数 (大文字) |
f | 浮動小数点数 (double型) | [-]dddd.dddd |
e | 浮動小数点数 (double型) | [-]d.dddd e[符号]dd[d] |
E | 浮動小数点数 (double型) | [-]d.dddd E[符号]dd[d] |
… |
≫setlocale()
ポインタ | |
---|---|
stdin | 標準入力 |
stdout | 標準出力 |
stderr | 標準エラー |
_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned); #define stdin (__acrt_iob_func(0)) #define stdout (__acrt_iob_func(1)) #define stderr (__acrt_iob_func(2))ucrt\corecrt_wstdio.h