Cファイル管理
ファイルを使用して、大量の永続データを保存できます。他の多くの言語と同様に、「C」は次のファイル管理機能を提供します。
- ファイルの作成
- ファイルを開く
- ファイルの読み取り
- ファイルへの書き込み
- ファイルを閉じる
「C」で使用できる最も重要なファイル管理機能は次のとおりです。
関数 | 目的 |
fopen() | ファイルの作成または既存のファイルのオープン |
fclose() | ファイルのクローズ |
fprintf() | データのブロックをファイルに書き込む |
fscanf() | 読み取りファイルからデータをブロックする |
getc() | ファイルから1文字を読み取る |
putc() | ファイルに1文字を書き込む |
getw() | ファイルから整数を読み取る |
putw() | ファイルへの整数の書き込み |
fseek() | 指定した場所へのファイルポインタの位置を設定します |
ftell() | の現在の位置を返しますファイルポインタ |
rewind() | ファイルの先頭にファイルポインタを設定します |
このチュートリアルでは、次のことを学習します-
- ファイルの作成方法
- ファイルを閉じる方法:
- ファイルへの書き込み
- fputc()関数:
- fputs()関数:
- fprintf()関数:
- ファイルからのデータの読み取り
- getcおよびputcを使用したインタラクティブなファイルの読み取りと書き込み
ファイルの作成方法
ファイルを操作する場合、最初のステップはファイルを作成することです。ファイルは、データが保存されるメモリ内のスペースに他なりません。
「C」プログラムでファイルを作成するには、次の構文を使用します。
FILE *fp;fp = fopen ("file_name", "mode");
上記の構文では、ファイルは標準ライブラリで定義されているデータ構造。
fopenは、ファイルを開くために使用される標準関数です。
- ファイルがシステムに存在しない場合は、作成されてから開かれます。
- ファイルがシステムにすでに存在する場合は、直接開かれます。この関数を使用します。
fpは、タイプファイルを指すファイルポインタです。
ファイルを開いたり作成したりするときは常に、ファイルをどのように処理するかを指定する必要があります。 「C」プログラミングのファイルは、読み取り/書き込みの目的で作成または開くことができます。モードは、以下の目的のいずれかでファイルを開くかどうかを指定するために使用されます。以下は、ファイルの操作中に使用できる「C」プログラミングのさまざまなタイプのモードです。
ファイルモード | 説明 |
r | 読み取り用にファイルを開きます。ファイルが読み取りモードの場合、ファイルがシステムにすでに存在していれば、データは削除されません。 |
w | 書き込み用にファイルを開きます。ファイルが書き込みモードの場合、ファイルがまったく存在しない場合は新しいファイルが作成されます。ファイルがシステムにすでに存在する場合は、ファイル内のすべてのデータが切り捨てられ、書き込み用に開かれます。目的。 |
a | ファイルを追加モードで開きます。ファイルが追加モードの場合、ファイルが開かれます。ファイル内のコンテンツ変わらない。 |
r + | 最初から読み取りと書き込みが可能 |
w + | 読み取りと書き込みのために開き、ファイルを上書きします |
a + | 読み取りと書き込みのために開き、ファイルに追加します |
指定された構文では、ファイル名とモードは文字列として指定されるため、常に二重引用符で囲む必要があります。
例:
#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}
出力:
ファイルはコードを保存したのと同じフォルダーに作成されます。
ファイルを作成するパスを指定できます
#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}
ファイルを閉じる方法
ファイルの操作が終了するたびに、常にファイルを閉じる必要があります。これは、ファイルの内容とリンクが終了していることを意味します。これにより、ファイルへの偶発的な損傷を防ぎます。
“C”は、ファイルを閉じる操作を実行するためのfclose関数を提供します。 fcloseの構文は次のとおりです。
fclose (file_pointer);
例:
FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);
fclose関数は引数としてファイルポインタを取ります。次に、ファイルポインタに関連付けられたファイルがfclose関数を使用して閉じられます。クローズが成功した場合は0を返し、ファイルのクローズ中にエラーが発生した場合はEOF(ファイルの終わり)を返します。
ファイルを閉じた後、同じファイルポインタを他のファイルで使用することもできます。
「C」プログラミングでは、プログラムが終了するとファイルは自動的に閉じられます。 fclose関数を記述してファイルを手動で閉じることは、優れたプログラミング手法です。
ファイルへの書き込み
Cでは、ファイルに書き込むときに、改行文字「\ n」を明示的に追加する必要があります。
stdioライブラリは、ファイルへの書き込みに必要な関数を提供します。
- fputc(char、file_pointer):file_pointerが指すファイルに文字を書き込みます。
- fputs(str、file_pointer):file_pointerが指すファイルに文字列を書き込みます。
- fprintf(file_pointer、str、variable_lists):file_pointerが指すファイルに文字列を出力します。文字列には、オプションでフォーマット指定子と変数のリストvariable_listsを含めることができます。
以下のプログラムは、ファイルへの書き込みを実行する方法を示しています。
fputc()関数:
出力:
上記のプログラムは1文字を書き込みます次の行記号「\ n」に到達するまでfputc_test.txtファイルに挿入します。これは、文が正常に書き込まれたことを示します。プロセスは、配列の各文字を取得してファイルに書き込むことです。
- 上記のプログラムでは、ファイルを作成して開きました。書き込みモードでfputc_test.txtと呼ばれ、ファイルに書き込まれる文字列を宣言します。
- forループを使用して文字ごとの書き込み操作を実行し、「\ n」まで各文字をファイルに配置します。 “文字が検出された後、fclose関数を使用してファイルが閉じられます。
fputs()関数:
出力:
- 上記のプログラムでは、fputs_test.txtというファイルを作成して書き込みモードで開きました。
- fputs()関数を使用して3つの異なる文字列を書き込むことにより、書き込み操作を行った後
- 次に、fclose関数を使用してファイルを閉じます。
fprintf()関数:
出力:
- 上記のプログラムでは、fprintf_test.txtというファイルを書き込みモードで作成して開きました。
- 文字列を書き込んでfprintf()関数を使用して書き込み操作を実行した後、fclose関数を使用してファイルを閉じます。
ファイルからのデータの読み取り
ファイルからのデータの読み取り専用の3つの異なる関数があります
- fgetc(file_pointer):ファイルポインタが指すファイルから次の文字を返します。ファイルの終わりに達すると、EOFが送り返されます。
- fgets(buffer、n、file_pointer):ファイルからn-1文字を読み取り、最後の文字としてNULL文字「\ 0」が追加されたバッファーに文字列を格納します。
- fscanf(file_pointer、conversion_specifiers、variable_adresses):データの解析と分析に使用されます。ファイルから文字を読み取り、変換指定子を使用して変数ポインターvariable_adressesのリストに入力を割り当てます。 scanfと同様に、スペースまたは改行が検出されると、fscanfは文字列の読み取りを停止することに注意してください。
次のプログラムは、fgets()、fscanf()、およびを使用したfputs_test.txtファイルからの読み取りを示しています。 fgetc()関数はそれぞれ:
結果:
- 上記のプログラムでは、以前にfprintf()関数を使用して作成された「fprintf_test.txt」というファイルを開きました。このファイルには「LearningCwithGuru99」という文字列が含まれています。バッファサイズが行全体を処理するのに十分でなければならない行ごとに読み取るfgets()関数を使用して読み取ります。
- ファイルを再度開いて、ポインタファイルをリセットして、の先頭を指すようにします。ファイル。各単語を個別に処理するためのさまざまな文字列変数を作成します。変数を出力して、その内容を確認します。 fscanf()は主に、ファイルからデータを抽出して解析するために使用されます。
- ファイルを再度開いて、ポインタファイルをファイルの先頭を指すようにリセットします。データを読み取り、getc()関数を使用して、EOFステートメントが検出されるまでファイルから1文字ずつ出力します。
- さまざまなバリアントを使用してファイルの読み取り操作を実行した後、fclose関数を使用してファイルを再度閉じました。
getcとputcを使用したインタラクティブなファイルの読み取りと書き込み
これらは最も単純なファイル操作です。 Getcはgetcharacterの略で、putcはputcharacterの略です。これらの2つの関数は、一度に1文字のみを処理するために使用されます。
次のプログラムは、「C」プログラミングでのファイル処理機能を示しています。
出力:
- 上記のプログラムでは、書き込みモードでdemoというファイルを作成して開きました。
- 書き込み操作が実行された後、fclose関数を使用してファイルを閉じます。
- ファイルを再度開きました。これには、読み取りモードのデータが含まれています。 eofが見つかるまでwhileループが実行されます。ファイルの終わりが見つかると、操作は終了し、printf関数を使用してデータが表示されます。
- 読み取り操作を実行した後、fclose関数を使用してファイルを再度閉じます。
概要
- ファイルは、データが保存されるメモリ内のスペースです。
- “C 「プログラミングは、ファイルを処理するためのさまざまな機能を提供します。
- ファイルを操作するメカニズムは、ファイル管理と呼ばれます。
- ファイルを操作する前に、ファイルを開く必要があります。
- ファイルは、読み取り、書き込み、または追加モードで開くことができます。
- Getcおよびputc関数は、単一の文字の読み取りと書き込みに使用されます。
- 関数fscanf()を使用すると、ファイルからデータを読み取って解析できます
- EOFが発生するまでループしてすべてのファイルをカバーすることにより、ファイル全体を(getc関数を使用して)読み取ることができます
- 関数fprintf()を使用して、名前を作成した後にファイルに書き込むことができます。ファイルにはnewlが必要です。文字列テキストの最後にあるine文字。