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,...):
文字列からの書式付き「入力」stderrstdin, 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、そうでない場合に
EOFfread と 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