ファイル・・・関連付けられたデータの集まり
ファイル
データ1
データ3
データ2
- C言語 ( Unix ) では、ファイルはバイトデータの列として扱われる
バイトデータ・・・8ビット、char型
- (Cobol ような言語で必要となる)レコードの定義が必要ではない
- 内部構造の定義、使い方はユーザ(利用者)にすべてまかされる
[Q] ファイルに関連する用語をあげ、それを説明してみてください
例) ディスクファイル、テキストファイル・・・・
fopen 関数 ・・・file を開く(= そのファイルを使う)fclose関数 ・・・file を閉じる(= そのファイルの使い終り)
一般には1つだけでなくて多くのファイルを同時に開く(使えるようにする)ために、現実のファイル名と対応・区別を付けるための目印が必要
この目印を・・・
ファイルポインタ or ファイル変数
と呼ぶ。ファイル変数は一般の変数と同じように使う前に定義する。記憶クラスやスコープなどのC言語の変数に関する規則にも従う。
ファイルポインタを使う
ファイルポインタの 変数の型 は FILE である。この型の正体は構造体である。宣言例)
FILE * fp ; (ファイル変数 fp を宣言)
ファイル変数はポインタ型として宣言・準備する(お約束事)fopen 関数
使用方法)ファイルポインタ = fopen ( "ファイル名" , "モード" ) ;
ファイル名:MS-DOS の dir や、Unix の ls コマンドで見る事ができるファイル名を書くモード:ファイルを開く際に、「読み込む」か、「書き込む」かを指定
"r" .... ( Read )読み込みファイル
"w" .... ( Write ) 書き込みファイル
注意)既存のファイルを "w" でオープンすると、内容が破壊される
例)ファイル名が "file.dat" のファイルを読み込みファイルとして使用できるように準備するfp = fopen( "file.dat" , "r" );・これ以降、 fp というファイル変数によってファイル内容をアクセス(使用)できる
・これ以降は、実際のファイル名はプログラム中には出てこないfclose関数
使用方法)fclose( ファイルポインタ ) ;
ファイルポインタに結びついているファイルの使用を終える。
ファイルへのアクセス
通常の画面入出力関数の前に "f" を付ける("FILE" の "f")と覚えておくとよい
printf( ) → fprintf( ファイルポインタ , )scanf( ) → fscanf( ファイルポインタ , )
getchar( ) → fgetc( ファイルポインタ , )
putchar( ) → fputc( ファイルポインタ , )
どのファイルから読み込むか(どのファイルに書き込むか)を指定するために、ファイルポインタの部分が増えているが、その他の使い方は 'f' がつかない関数と同じである。
ファイル入出力関数一覧も参考にしてください。