ファイル操作の方法は大体わかるんだけど、ファイルの入出力関数の使い方がいまいち分からない。
そもそも、ファイルの入出力関数って何?
この記事を読めば、これらの悩みを解決できます。
また、過去にファイルの操作方法を解説したので、先にそちらをご覧ください。
ファイル入出力関数を解説!
まず初めに、ファイル入出力関数について説明します。
ファイルの操作が必要になるのは、「ファイルを読み取る」、「ファイルに上書きする」、「ファイルに追記する」という、3つのうちいずれかの目的が出来たときです。このとき、「fopen関数」を使ってファイルを開き、ファイル入出力関数を使って、目的を達成します。
このように、目的を達成するときに「fopen関数」を使うことになります。
先ほど紹介した投稿の「ファイルの読み書きをする」で紹介している関数が、全てファイル入出力関数になります。
ファイル入出力関数は全部でこれだけ
とりあえず、6種類あるのでまとめてみます。
fscanf() ファイルから文字列を読み込む
fgets() ファイルから文字列を1行分読み込む
fgetc() ファイルから1文字読み込む
fprintf() ファイルに文字列を書き込む
fputs() ファイルに文字列を1行分書き込む
fputc() ファイルに1文字書き込む
上3つが、読み込みをするときに使う関数で、下3つが、書き込みをするときに使う関数です。
多分、気づいた方もいるかと思いますが、例えば「fscanf」は「scanf」の大元です。
過去に学習したものと関連付けて覚えると良いので、「どの関数から何が生まれたか」を下にまとめてみます。
fscanf()➔scanf()
fgets()➔gets_s()
fgetc()➔getchar()
fprintf()➔printf()
fputs()➔prints()
fputc➔putchar()
ファイル入出力関数は全て 、f を取ればどういう関数か分かるので意外と簡単です。
gets_s、getcharなどをまだ勉強していない方は、こちらを参考にしてください。
ファイル入出力関数の使い方を解説
では、ファイル入出力関数を使うときのフォーマットをまとめます。
fscanf(ファイルポインタ,”変換書式”,変数のアドレス);
fgets(配列名,文字数の上限,ファイルポインタ);
変数名=fgetc(ファイルポインタ);
fprintf(ファイルポインタ,”変換書式”,変数名);
fputs(配列名,ファイルポインタ);
fputc(変数名,ファイルポインタ);
上3つでの「変数名」や「配列名」は「文字列を代入する変数」のことで、下3つでの「変数名」や「文字列」は「出力したい変数」のことです。
ファイル入出力関数はこのフォーマットで使います。
まとめ
今回の投稿と最初に紹介した投稿を見ておけば、ファイルの操作は基本的に問題ないです。
ファイルの操作では、唯一「ファイル入出力関数」が覚えにくいと思います。フォーマットをスクショしていつでも見れるようにするのがおすすめです。
次は、gets、getcを勉強してみましょう。