TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*C言語* 〜47時限目〜 大量のデータを入力する・・・

〜目次〜

 

 

 

ファイルに書式付きで出力する

今回は、キーボードから入力した大学生のテストの点数を、

ファイルに読み込みます。

これを行う際にfputs( )関数のように、

そのまま書き出すのではなく、

出力幅を指定してファイルにデータを書き込むようにします。

以下のコードを入力してください。

sample110.c

f:id:YuyaTerayama:20180917230030p:plainーsample110の実行画面ー

ファイルをオープンしました。

5人のテストの点数を入力してください。

99

70

77

13

56

ファイルに書き込みました。

ファイルをクローズしました。

sample110ではファイルに書き込む際に、

fputs( )関数ではなく、

fprintf( )関数

という関数を使っています。

この関数はprintf( )関数と似たもので、

ファイルに結び付けられているストリームに対して、

書式付きの出力ができるようになっています。

この関数はprintf( )関数と同じ変換仕様を使って書式を指定できます。

test110.txtファイルの中身は以下のようになります。

f:id:YuyaTerayama:20180917230407p:plain

 

ファイルから1行入力する

データを読み込むコードを入力してみます。

46時限目で作成した、test109.txtファイルを使います。

このファイルの内容を画面に出力するコードを入力します。

sample111.c

f:id:YuyaTerayama:20180917231149p:plainーsample111の実行画面ー

ファイルをオープンしました。

ファイルに書き込まれている文字列は、

Hello.

Thankyou!

ファイルをクローズしました。

sample111では、

ファイルに書き込まれている2つの文字列を読み込んで、

それを画面に出力しています。

読み込みを行う場合には、

オープンモードとして読み込み用の、"r"を指定します。

オープンしたファイルからデータを読み込むには、

fgets( )関数

などを使うことができます。

この関数はfputs( )関数と逆の処理を行います。

改行までの1行を読み取って、

改行文字ごと格納します。

 

大量のデータを入力する

ファイルを使うことで大変便利になることがあります。

何人分ものテストの点数を1人ずつ入力するのは大変です。

しかし、

あらかじめテストのデータをファイルとして用意しておくことで、

大量のデータを読み込んで、

柔軟なコードを記述することができるようになります。

まず、

以下のようなファイルをテキストエディタなどで作成してください。

test112.txt

f:id:YuyaTerayama:20180917232415p:plain

これは8人の大学生のテストの点数のデータです。

このデータを読み込んで成績処理を行うプログラムを作成します。

sample112.c

f:id:YuyaTerayama:20180917233257p:plainーsample112の実行画面ー

ファイルをオープンしました。

No.1     99点

No.2     70点

No.3     77点

No.4     13点

No.5     56点

No.6     63点

No.7     100点

No.8     21点

最高点は100点です。

最低点は13点です。

ファイルをクローズしました。

sample112では、

あらかじめ保存しておいたファイルから、

データを読み込んで最高点と最低点を出力しています。

データの読み込みには、

scanf( )関数に似た、

fscanf( )関数を使いました。

このようにファイルを使うことで、

データを大量に入力できるので、

様々なデータを扱うファイルを作成することができます。

 

次回はバイナリファイルに書き込むということから、

学んでいきます。

 

〜END〜