C言語のファイル読み込みモード(fopen "r")の基本と使い方を徹底解説
ファイルとは、レコード(データの集まり)の集合体であり、ハードディスク上にデータを永続的に保存しておくための場所です。C言語では、標準入出力ライブラリ(stdio.h)を通じてファイル操作を行うことができます。
ファイルが必要な理由
- プログラムが終了すると、メモリ上のデータはすべて失われてしまいます。
- ファイルに保存しておけば、プログラムが終了してもデータは保持されます。
- 大量のデータを入力する場合、すべてを手入力するには多くの時間がかかります。
- わずか数個のコマンドで、ファイルの内容に簡単にアクセスできます。
- データを変更することなく、別のコンピュータへ簡単に移動できます。
- C言語のコマンドを使えば、さまざまな方法でファイルへアクセスできます。
ファイルに対する基本操作
C言語におけるファイル操作は、主に以下の手順で行います。
- ファイルの命名
- ファイルを開く
- ファイルから読み込む
- ファイルへ書き込む
- ファイルを閉じる
基本構文
ファイルポインタの宣言は、次のように行います。
FILE *ファイルポインタ;
記述例:FILE *fptr;
ファイルの命名とオープンは、次の構文で行います。
ファイルポインタ = fopen("ファイル名", "モード");たとえば、読み込みモードでファイルを開く場合は、次のように記述します。
FILE *fp;
fp = fopen("sample.txt", "r");
ここで指定している「r」は読み込みモードを表します。このモードでは、既存のファイルを読み取り専用で開きます。
- 指定したファイルが存在しない場合、fopen関数はNULLを返します。
- ファイルが存在する場合は、データを正常に読み込むことができます。
サンプルプログラム
以下は、ファイルを読み込みモードで開き、ファイル内の行数をカウントするCプログラムです。
#include <stdio.h>
#define FILENAME "Employee Details.txt"
int main(){
FILE *fp;
char ch;
int linesCount = 0;
// ファイルを読み込みモードで開く(既存ファイルが必要)
fp = fopen(FILENAME, "r");
if (fp == NULL) {
printf("File \"%s\" does not exist!!!\n", FILENAME);
return -1;
}
// 1文字ずつ読み込み、改行文字をチェック
while ((ch = getc(fp)) != EOF) {
if (ch == '\n')
linesCount++;
}
// ファイルを閉じる
fclose(fp);
// 行数を表示
printf("Total number of lines are: %d\n", linesCount);
return 0;
}
実行結果
上記のプログラムを実行すると、次のような結果が出力されます。
Total number of lines are: 3
ポイントのまとめ
- fopen関数の第2引数に「r」を指定すると、読み込み専用モードでファイルが開かれます。
- ファイルが開けなかった場合はNULLが返されるため、必ずNULLチェックを行いましょう。
- getc関数はファイルから1文字ずつ読み込み、ファイルの終端に達するとEOFを返します。
- 使用後はfclose関数で必ずファイルを閉じ、リソースを解放します。
-
【C言語】putw()関数とgetw()関数の使い方をわかりやすく解説
ファイルとは、レコードの集合体であり、データを永続的に保存しておくためのハードディスク上の場所のことです。C言語ではファイルを利用することで、プログラムの実行が終了しても失われないデータを扱えます。ファイルに対する主な操作C言語におけるファイル操作は、基本的に以下の手順で行います。ファイル名を指定する(命名)ファイルを開くファイルから読み込むファイルに書き込むファイルを閉じる基本構文まず、ファイルを扱うためのファイルポインタを宣言します。FILE *ファイルポインタ;宣言例:FILE *fptr;続いて、fopen()関数を使ってファイルを開きます。ファイルポインタ = fopen(ファイル名
-
Windows 10でメモリダンプファイル(.dmp)を読み取る方法|BlueScreenViewとWinDbgの使い方
PCが突然クラッシュした経験はありませんか?その際に表示されるのが、いわゆる「ブルースクリーン(BSOD)」です。BSODにはクラッシュの原因が一瞬表示されますが、数秒で画面が消えてしまうため、その場で原因を分析することはほぼ不可能です。幸いなことに、Windowsがクラッシュすると、シャットダウンの直前にクラッシュに関する情報を記録した「クラッシュダンプファイル(.dmp)」や「メモリダンプ」が自動的に作成されます。このダンプファイルを解析することで、エラーの原因を特定し、トラブルシューティングにつなげることができます。メモリダンプファイルとは?BSODが表示されると同時に、Windowsは