C言語 テキストファイル読込み fopen
ファイルの読み込みを行ってみる。まずは、テキストファイルを用意する。下の例ではsample.txtという名前のファイルをプログラムと同じ階層に置いている。中身は以下のようにした。
sample.txt
このプログラムを実行すると、1行目の「param0=1.000000」だけがコマンドプロンプトに出力される。
上から説明すると、ファイルを扱うためにまず、<stdlib.h>が必要なのでincludeする。
FILE *fpはファイルポインタの宣言。これはファイルの入出力で必要な情報を管理する。
str[128]は、読み込んだテキストを格納するための配列を用意。サイズは1行がまるまる入るだろう大きさにしている。
fopenで指定したパスのファイルを開く。その際の「r」は、読込モードの指定。
if文。もしファイルがなければ、fpはNULLとなるので、その時点で終了させる。ファイルがあれば、elseの行を実行する。
fgetsでテキストを読み込んでいるのだが、fgetsは1行読み込む関数なので、改行があるところまで読み込んでいる。もしくはバイト数で指定することもできる。それをpintfでプロンプトに出力する。
最後にfcloseで開いたファイルを閉じて終了。
次にすべての行を読み込んでプロンプトに出力するプログラムに改造してみる。
for文を使って、1行ずつ読み込んでは、NULLになるまで繰り返している。読み込む行がなくなればNULLになるので、その時点でforから抜けて終了する。
C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら
sample.txt
param0=1.000000 param1=0.513000 param2=0.120000 param3=0.110000 param4=0.000012 |
ファイルから1行読込プログラム
|
上から説明すると、ファイルを扱うためにまず、<stdlib.h>が必要なのでincludeする。
FILE *fpはファイルポインタの宣言。これはファイルの入出力で必要な情報を管理する。
str[128]は、読み込んだテキストを格納するための配列を用意。サイズは1行がまるまる入るだろう大きさにしている。
fopenで指定したパスのファイルを開く。その際の「r」は、読込モードの指定。
if文。もしファイルがなければ、fpはNULLとなるので、その時点で終了させる。ファイルがあれば、elseの行を実行する。
fgetsでテキストを読み込んでいるのだが、fgetsは1行読み込む関数なので、改行があるところまで読み込んでいる。もしくはバイト数で指定することもできる。それをpintfでプロンプトに出力する。
最後にfcloseで開いたファイルを閉じて終了。
param0=1.000000 |
ファイルを読み込むプログラム
|
param0=1.000000 param1=0.513000 param2=0.120000 param3=0.110000 param4=0.000012 |
C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら