1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【C言語超入門(第41回)】ファイルからの入出力の方法を学ぼう(文字列の入出力編)

Pocket

C言語には、ファイルから文字列を入力するための関数として fgets() 関数が、
ファイルに文字列を出力するための関数として fputs() 関数が用意されています。

今回のC言語超入門では、サンプルプログラムを使いながら、
ファイルから文字列を入出力する方法について解説いたします。

なお、ファイルのオープン・クローズについてはC言語超入門(第39回)、ファイルから1文字を入出力する方法についてはC言語超入門(第40回)を参照くださいませ。

ファイルから文字列を1行ずつ入力してファイルに1行ずつ出力するサンプルプログラム

※事前に準備するファイル(file_in.txt)の内容
こんにちは。
私の名前はKyokoです。
C言語を勉強しています。

上記のプログラム1を実行しますと、以下の file_out.txt ファイルが新規に作成されます。

※プログラム1を実行した際に作成されるfile_out.txtファイルの内容
こんにちは。
私の名前はKyokoです。
C言語を勉強しています。

サンプルプログラムの解説

上記プログラム1は fopen() 関数を使い、8行目で文字を入力するファイルをオープンし、
10行目で文字を出力するファイルをオープンしています。

ファイルのオープン処理につきましては、getc()、putc()を使った1文字ずつファイルから入出力する処理と同じですから、ここでは割愛いたします。

もしプログラム1のファイルオープン処理について不明な点がありましたら、
「【C言語超入門(第39回)】ファイルからの入出力の方法を学ぼう(オープン、クローズ編)」を参照くださいませ。

さて、プログラム1の12行目では、fgets() で file_in.txt ファイルから文字列を入力し、
そのまま fputs() で file_out.txt に出力しています。

fgets() は、ファイルを読み終えるとNULLを返す仕様を利用して、
while文を使って fgets() が NULL を返すまで繰り返しています。

つまりプログラム1は、file_in.txt を file_out.txt にコピーするプログラム、という訳です。

これは「【C言語超入門(第40回)】ファイルからの入出力の方法を学ぼう(1文字の入出力編)」で紹介したプログラムと同じ結果になります。

このことから、ファイルの入出力というのは基本のパターンが決まっている、と言えます。

つまりファイル入出力基本パターンを覚えてしまえば、そのパターンを流用して、いろいろな処理を作ることができるようになる、と言うことです。

C言語超入門の第41回まとめ

さて今回のC言語超入門では、ファイルから文字列を入出力する fgets() 関数と fputs() 関数についてご説明いたしましたが、いかがでしたでしょうか。

最後にもう一度、fgets() 関数と fputs() 関数について、ポイントをまとめておきます。

・ファイルから文字列を入出力するために、fgets() 関数と fputs() 関数がある
・ ファイルの入出力というのは基本のパターンが決まっていることから、基本パターンを流用していろいろな処理を作ることができる

なお、ファイルのオープン・クローズについてはC言語超入門(第39回)、ファイルから1文字を入出力する方法についてはC言語超入門(第40回)を参照くださいませ。

ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る