http://www.sw.it.aoyama.ac.jp/2005/Computer%20Practice%20I/lecture11.html
© 2005 Martin J. Dürst 青山学院大学
標準入力 (stdin ) |
任意のファイル f |
機能 |
(不要) | fopen(name,"r") |
ファイルを開く |
getchar() |
getc(f) 又は fgetc(f) |
一文字入力 |
gets(s)
fgets(s,l,stdin) |
fgets(s,l,f) |
一行入力 |
scanf(format,...) |
fscanf(f,format,...) |
書式つき入力 |
標準出力 (stdout ) |
任意のファイル f |
機能 |
(不要) | fopen(name,"w") |
ファイルを開く |
putchar(c) |
putc(c,f) 又は fputc(c,f) |
一文字出力 |
puts(s) |
fputs(s,f) |
一行出力 |
printf(format,...) |
fprintf(f,format,...) |
書式つき出力 |
fclose(f)
: ファイルを閉じるfflush(f)
:
出力した文字をバッファから追い出すsprintf(s,format,...)
:
文字列への書式付き「出力」sscanf(s,format,...)
:
文字列からの書式付き「入力」stderr
stdin
, stdout
と同様に
stderr
ファイル が常に用意されているif (!(file=fopen("myfile.txt","w")) { fprintf (stderr, "Cannot open file myfile.txt for writing.\n"); exit(1); }
fopen
には "rb"
, "wb"
,
"r+b"
等を使う (b
は binary,
+
は変更)fseek
で変更できるfwrite
、読むには fread
関数を使うfseek
関数FILE*
のファイルポインタlong
のゲタ (バイト)int
の種類:
SEEK_SET
: ゲタはファイルの頭からSEEK_CUR
: ゲタは現在位置から
(負も可)SEEK_END
: ゲタはファイルの末尾から
(負も可)0
、そうでない場合に
EOF
fread
と fwrite
関数void *
のプログラム内の書き出したい、読み込みたい場所size_t
(普通は int
) の要素
(レコード) 1個の大きさ (バイト)size_t
のレコードの数FILE*
のファイルポインタfseek
や
flush
が必要コマンドラインにコマンドそのものの後に
(入出力のリダイレクト以外)
に書かれたものは次の通りに main
関数に渡される:
main
関数の定義:int main (int argc, char *argv[]) { ... }
argc
はプログラム名を含めて引数
(argument) の数 (count)argv
は文字列ポインタの配列argv[0]
はプログラム名 (へのポインタ)argv[i]
は (1 から数えて) i 個目の引数
(へのポインタ)argv[argc]
は NULL