このページは、ファイル処理の流れ を読んでおくと
理解しやすくなります。
テキストモードでの読み書きについて説明します。
読み込み処理
読み込み用ファイル:text.txt
プログラムファイル:program.c
#include <stdio.h>
void main(void) {
FILE* fp;1
char ss[80];
fp = fopen("text.txt", "r");2
while (fgets(ss, 256, fp)!=NULL) {3
printf("%s\n", ss);
}
fclose(fp);4
}
|
読み込み用ファイル:text.txtを読み込んで、内容を出力するプログラムです。
1では、ファイルストリームポインタを宣言しています。
これは、1つのファイルを処理する上で必要なポインタです。
このポインタの中身を知る必要はありません。
続いて2では、ファイルを読み込み用モードでオープンしています。
第2引数は、読み込み用なので、Readのrを指定しています。
(デフォルトでテキストモードとなります。)
3で実際に読み込みを行っています。
fgets関数は、改行までのデータを読み込み、第1引数で指定した変数へ格納します。
第2引数は、1回の読み込む最大バイト数を指定します。
そして、ファイルから読み込むデータが無くなったら、NULLが返されるので、
それまで、データを読み込んで出力しています。
4は、ファイルのクローズを行っています。
書き込み処理
書き込み用ファイル:text.txt
プログラムファイル:program.c
#include <stdio.h>
void main(void) {
FILE* fp;
char ss[] = "star";
int a = 123;
fp = fopen("text.txt", "w");1
fprintf(fp, "%s\n", ss);2
fprintf(fp, "%d\n", a);
fclose(fp);
}
|
書き込み用ファイルに、いろんなデータを書き込むプログラムです。
1では、ファイルを書き込みモードでオープンしています。
第2引数は、書き込み用なので、Writeのwを指定しています。
3で実際に書き込みを行っています。
fprintf関数は、指定したファイルへ書式指定文字列を書き込む関数です。
printf関数のファイル処理バージョンと言う感じです。
ファイルへの書き込みが終わったら、ファイルクローズして終了です。
この結果、ファイルの中身は以下のようになります。
star 0x0A 0x0D
123 0x0A 0x0D
スポンサードリンク
|