LoginSignup
0
0

【C++Builder】C ランタイムライブラリリファレンス (stdio.h)

Last updated at Posted at 2024-03-04

入出力 (Standard Input/Output)

ヘッダ
ファイル
stdio.h
規格 ANSI C (C89) / C90
概要 3 つの型、幾つかのマクロ及び入出力を行う幾つかの関数を宣言する。

プラグマ

名前 機能
FILE ストリームを管理するための構造体。
fpos_t ファイル位置を表す型。
(size_t) sizeof() が返す符号なし整数型。

マクロ

I/O バッファリングスタイル

ファイルで使用するバッファリングスタイルを定義するための定数です。

名前 機能
_IOFBF ファイルはフルバッファリングされます。
_IOLBF ファイルは行バッファリングされます。
_IONBF ファイルはバッファリングされません。

最大値

名前 機能
FOPEN_MAX プロセス当たりの最大ファイル数です。
FILENAME_MAX ファイル名文字列を十分に保持できる配列のサイズです。
L_tmpnam tmpnam() が生成するファイル名文字列を十分に保持できる配列のサイズです。
TMP_MAX tmpnam() が生成する一意なファイル名の最大数です (最小で 25)。

シーク

名前 機能
SEEK_CUR 現在のファイルポインタの位置です。
SEEK_END ファイルの終わり(EOF)です。
SEEK_SET ファイルの先頭です。

ストリーム

プログラムの開始時に自動的に開かれる定義済みのストリームです。

名前 機能
stderr 標準入力デバイス。
stdin 標準出力デバイス。
stdout 標準エラー出力デバイス。

その他

名前 機能
BUFSIZ setbuf() 関数によって使用されるデフォルトのバッファサイズです。
EOF ファイルの終わり(EOF)に到達したことを示す定数です。
(NULL) 任意のデータオブジェクトポインタと互換性があるヌルポインタ定数です。

引数付きマクロ

関数

名前 機能
clearerr() エラーインジケータをリセットします。
fclose() ストリームを閉じます。
feof() ストリームのファイルの終わり(EOF)を検出します。
ferror() ストリームのエラーを検出します。
fflush() ストリームをフラッシュします。
fgetc() ストリームから文字を取得します。
fgetpos() 現在のファイルポインタを取得します。
fgets() ストリームから文字列を取得します。
fopen() ストリームを開きます。
要確認: C11 以降なら fopen_s() で代替。
fprintf() ストリームに書式付き出力を書き込みます。
fputc() ストリームに 1 文字を出力します。
fputs() ストリームに文字列を出力します。
fread() ストリームからデータを読み取ります。
freopen() オープンストリームに新しいファイルを関連付けます。
要確認: C11 以降なら freopen() で代替。
fscanf() ストリームからの入力をスキャンして書式設定します。
fseek() ストリーム上のファイル ポインタの位置を変更します。
fsetpos() ストリームのファイルポインタの位置を変更します。
ftell() 現在のファイルポインタを返します。
fwrite() ストリームに書き込みます。
getc() ストリームから文字を取得します 1
getchar() stdin から文字を取得します。getc(stdin) 1
gets() stdin から文字列を取得します。
非推奨: fgets() で代替。
C11 で削除されている。C11 以降なら gets_s() で代替。
perror() システムエラーメッセージを出力します。
printf() 書式付き出力を stdout に書き込みます。
putc() 文字をストリームに出力します 1
putchar() 文字を stdout に出力します。putc(c, stdout) 1
puts() stdout に文字列を出力します。
remove() ファイルを削除します。
rename() ファイル名を変更します。
rewind() ファイルポインタの位置をストリームの先頭に変更します。
要確認: fseek() で代替。
scanf() stdin ストリームからの入力を、スキャンおよび書式設定します。
setbuf() ストリームにバッファリングを割り当てます。
要確認: setvbuf() で代替。
setvbuf() ストリームにバッファリングを割り当てます。
snprintf() 2 最大長 nsize のバッファに書式付き出力を格納します。
sprintf() 文字列に書式付き出力を書き込みます。
sscanf() 文字列からの入力をスキャンして書式設定します。
tmpfile() まったく新しいファイルをバイナリモードで開きます。
tmpnam() 一意のファイル名を作成します。
ungetc() 入力ストリームに 1 文字を戻します。
vfprintf() ストリームに書式付き出力を書き込みます。
vfscanf() 2 ストリームからの入力をスキャンして書式設定します。
vprintf() stdout に書式付き出力を書き込みます。
vscanf() 2 stdin からの入力をスキャンして書式設定します。
vsnprintf() 2 最大長 nsize のバッファに書式付き出力を格納します。
vsprintf() 文字列に書式付き出力を書き込みます。
vsscanf() 2 ストリームからの入力をスキャンして書式設定します。

ワイド文字用の関数が wchar.h で定義されています。

printf() と scanf()

printf() 系と scanf() 系の分類です。

接頭 対象 printf() vprintf() scanf() vscanf()
標準入出力 printf() vprintf() scanf() vscanf() 2
f ストリーム fprintf() vfprintf() fscanf() vfscanf() 2
s 文字列 sprintf() vsprintf() sscanf() vsscanf() 2
sn 文字列 (最大長指定) snprintf() 2 vsnprintf() 2

プレフィックス v を持つ printf() 系関数や scanf() 系関数は、引数リストではなく引数リストへのポインタを受け取ります。可変個数引数を利用する関数の中で利用されます。

資料


⇦ インデックスへ

  1. 関数ではなくマクロで定義される事があります。 2 3 4

  2. C99 で追加された。 2 3 4 5 6 7 8 9 10

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0