
こんにちは!
ポーランドで情報工学を勉強しています。
本記事ではC言語のファイル処理についてです。
給料とスコアのデータを読み込んでボーナス込みの合計給料を表示するプログラム。
生徒のテストの点数を読み込んで平均点を計算し成績をアウトプットするプログラム。
の2つのコードを書きました。
大学1年のC言語の授業で、ファイル処理についての課題を提出しなければいけない方、少しでも参考になれば幸いです。
↓YouTube にダイジェスト動画もアップしてあるので、そちらもぜひご覧ください。
他の動画でもファイル処理についての解説を行っているので、チャンネルをぜひ覗いてみてください。
ファイル読み込み
ファイルを読み込むにはまずファイルを開く必要があります。
ファイルを使うときは、fopen関数でのオープンが必要です。
fp = fopen("workers.txt", "r");
workers.txtというファイルを開く場合はこんな感じ。
fpの変数名は別になんでもいいです。
“r”は読み取りモードを表します。
ファイルの使用が終わったらファイルをクローズする作業が必要です。
fclose関数を使いさっき開いたファイルを閉じる作業。
fclose(fp);
データの読み込みにはfscanf関数を使い、データの書き込みにはfprintf関数を使います。
サンプルプログラム
給料とスコアのデータを読み込んでボーナス込みの合計給料を表示するプログラム。
まず、なにも書いていない”output.txt”ファイル。
データが書いてある”workers.txt”ファイル。
の2つを同じディレクトリ内に作ってください。
たとえばこんな感じ。
“workers.txt”内は 名前 苗字 給料 スコア という順番で。
変更後の給料をファイルに書き込むプログラム
このファイルを実行するとこういう結果が表示されます。
“workers.txt”から読み込んだデータをもとに新しい給料を表示しています。
さっきはデータがなにもなく空だった”output.txt”ファイルも実行後はこのようなデータが書き込まれます。
プログラム内のボーナスを計算する関数はこちらのほうが分かりやすいと思います。
【compute_bonus関数だけ変更】
malloc で確保したメモリ領域は使い終わったら free 関数を用いて解放します。
動画でもコードの説明をしています↓
生徒のテストの点数を読み込んで平均点を計算し成績をアウトプットするプログラム。
次に、生徒の点数を読み込んで平均点を計算し、それをもとにした成績を書き出すプログラムについて。
まず、なにも書いていない”results.txt”ファイル。
データがある”students.txt”ファイルの2つを同じディレクトリ内に作ってください。
たとえば”students.txt”ファイル内はこんな感じ。
平均点を計算し成績をファイルに書き込むプログラム
これを実行するとこのような結果が表示されます。
なにも書いていなかった”results.txt”ファイルにはこのようなデータが書き込まれます。
と、まあこんな感じです。
動画でもコードの説明をしています↓

以上、C言語のファイル処理についてでした。
C言語のおすすめ参考書はこちら。

コメント