C++:C標準ライブラリと主な関数のリスト(2) stdio.h
C言語の標準ライブラリの中から、汎用的な関数がセットになっているstdio.hをまとめました。
INDEX
stdio.h
ファイルの入出力に関連する関数がセットになったライブラリ。ディスク以外の周辺機器もファイルとして扱う。
また、規定のファイルポインタとしてこれらを扱うことも出来る。
-
ファイルポインタ
- stdin 標準入力(主にキーボード)
- stdout 標準出力(主にディスプレイ)
- stderr 標準エラー出力(ディスプレイ)
fopen
書式 |
FILE *fopen(const char *name, const char *mode); |
引数 |
const char *name(ファイル名)/const char *mode(モード文字列) |
戻り値 |
開いたファイルポインタ/失敗した場合はnull。 |
機能 |
ファイルを開く |
モード |
r [読み込み]/w [新規]/a [追加]/bを付けることでバイナリ/+を付けることで入出力 |
fclose
書式 |
int fclose( *fp); |
引数 |
*fp(ファイルポインタ) |
戻り値 |
成功した場合は0/失敗した場合はEOF |
機能 |
ファイルを閉じる |
fgetc
書式 |
int fgetc( *fp); |
引数 |
*fp(ファイルポインタ) |
戻り値 |
読み出した文字/失敗したor終わりに到達した場合はEOF |
機能 |
ファイルから1文字読み出す |
fgets
書式 |
char *fgets(char *s, int n, *fp); |
引数 |
char *s(文字列を格納するバッファ)/int n(1行の最大文字数)/ *fp(ファイルポインタ) |
戻り値 |
引数で指定したバッファ/失敗したor終わりに到達した場合はnull |
機能 |
ファイルから1行読み出す |
fputc
書式 |
int fputc(int c, *fp); |
引数 |
int c(出力文字)/ *fp(ファイルポインタ) |
戻り値 |
出力文字/失敗した場合はEOF。 |
機能 |
ファイルに1文字書き込む |
fputs
書式 |
int fputs(const char *s, *fp); |
引数 |
const char *s(文字列)/ *fp(ファイルポインタ) |
戻り値 |
成功した場合は偽/失敗した場合は真 |
機能 |
ファイルに文字列を書き込む。 |
fread
書式 |
size_t fread(void *buf, size_t size, size_t nelem, *fp); |
引数 |
void *buf(読み込みデータ格納先のポインタ)/size_t size(読み込みデータ長)/size_t n(項目数)/ *fp(ファイルポインタ) |
戻り値 |
読み込んだ項目数/失敗した場合は0 |
機能 |
ファイルから固定サイズの項目を読み込む |
fwrite
書式 |
size_t fwrite(const void *ptr, size_t size, size_t nelem, *fp); |
引数 |
const void *ptr(書き込むデータへのポインタ)/size_t size(1項目のサイズ)/size_t size(項目数)/ *fp(ファイルポインタ) |
戻り値 |
書き込んだ項目数/失敗した場合は0 |
機能 |
ファイルに固定サイズの項目を書き込む |
fprintf
書式 |
int fprintf( *fp, const char *format, …); |
引数 |
*fp(ファイルポインタ)/const char *format(書式付き文字列)/…(可変個の変数) |
戻り値 |
出力文字数/失敗したときは負の値 |
機能 |
ファイルに書式付き文字列を書き込む |
fscanf
書式 |
int fscanf( *fp, const char *format, …); |
引数 |
*fp(ファイルポインタ)/const char *format(変換指定文字列)/…(可変個のバッファ) |
戻り値 |
変換に成功した数/失敗した場合は-1 |
機能 |
ファイルから文字列を読み込み指定された形式に変換する。 |
ftell
書式 |
long ftell( *fp); |
引数 |
*fp(ファイルポインタ) |
戻り値 |
現在のファイル位置 |
機能 |
ファイル位置を取得する |
fseek
書式 |
int fseek( *fp, long offset, int ptrname); |
引数 |
*fp(ファイルポインタ)/long offset(ファイル位置の移動数)/int ptrname(ファイル位置の基準) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
ファイル位置を変更する |
位置 |
SEEK_SET(先頭)/SEEK_CUR(現在の位置)/SEEK_END(終わり) |
fgetpos
書式 |
int fgetpos( *fp, fpos_t *ptr); |
引数 |
*fp(ファイルポインタ)/fpos_t *ptr(ファイル位置を格納する変数のポインタ) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
現在のファイル位置を格納する |
fsetpos
書式 |
int fsetpos( *fp, const fpos_t *ptr); |
引数 |
*fp(ファイルポインタ)/const fpos_t *ptr(ファイル位置を格納する変数のポインタ) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
ファイル位置を変更する |
feof
書式 |
int feof( *fp); |
引数 |
*fp(ファイルポインタ) |
戻り値 |
終わりに到達した場合は真/到達していない場合は偽 |
機能 |
ファイルが終わりに到達したか調べる |
ferror
書式 |
int ferror( *fp); |
引数 |
*fp(ファイルポインタ) |
戻り値 |
エラー発生した場合は真/発生していない時は偽 |
機能 |
ファイルにエラーが発生したか調べる |
clearerr
書式 |
void clearerr( *fp); |
引数 |
*fp(ファイルポインタ) |
機能 |
ファイルのエラーの時に回復する |
fflush
書式 |
int fflush( *fp); |
引数 |
fp*(ファイルポインタ) |
戻り値 |
成功した場合は0/失敗したときは偽 |
機能 |
ファイルのバッファを全てクリアする。出力ファイルの時は全て書き込む。 |
freopen
書式 |
FILE *freopen(const char *filename, const char *mode, *fp); |
引数 |
const char *filename(ファイル名)/const char *mode(モード文字列)/*fp(ファイルポインタ) |
戻り値 |
引数で指定されたファイルポインタ/失敗した場合はnull |
機能 |
ファイルポインタの再割り当て(ストリームをクローズし新規ストリームをオープン) |
rename
書式 |
int rename(const char *oldname, const char *newname); |
引数 |
const char *oldname(現在のファイル名)/const char *newname(新しいファイル名) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
ファイルの名前を変更する |
remove
書式 |
int remove(const char *filename); |
引数 |
const char *filename(ファイル名) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
ファイルを削除する |
getchar
書式 |
int getchar(void); |
戻り値 |
読み出した文字/失敗した場合はEOF |
機能 |
標準入力(キーボード)から1文字読み込む |
putchar
書式 |
int putchar(char c); |
引数 |
char c(文字) |
戻り値 |
出力文字/失敗したときはEOF |
機能 |
標準出力(ディスプレイ)に1文字書き込む |
gets
書式 |
char *gets(char *s); |
引数 |
char *s(読み込んだ文字列を格納するバッファ) |
戻り値 |
引数で指定したバッファ/失敗したか終わりに到達した場合はnull |
機能 |
標準入力(キーボード)から1行読み出す。結果に改行は含まれない。 |
注意 |
バッファオーバーフロー(ウイルス侵入)の原因になる |
puts
書式 |
int puts(const char *s); |
引数 |
const char *s(文字列) |
戻り値 |
成功した場合は0/失敗したときは0以外 |
機能 |
標準出力(ディスプレイ)に1行書き込む(改行される) |
perror
書式 |
void perror(const char *s); |
引数 |
const char *s(表示する文字列) |
機能 |
指定した文字列と一緒に直前に発生したエラーを表示する |
printf
書式 |
int printf(const char *format, …); |
引数 |
const char *format(書式付き文字列)/…(可変個の変数) |
戻り値 |
出力文字数/失敗したときは-1 |
機能 |
標準出力(ディスプレイ)に書式付き文字列を書き込む。 |
scanf
書式 |
int scanf(const char *format, …); |
引数 |
const char *format(変換指定文字列)/…(可変個のバッファ) |
戻り値 |
変換に成功した数/失敗した場合は-1 |
機能 |
標準入力(キーボード)文字列を読み込み指定された形式に変換する |
注意 |
他の入力関数と使うと想定外の動作になるときがある |
さいごに
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。