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