注:ファイルに対して特定の操作を実行するときは、「**開く(作成)-読み取り/書き込み-閉じる」の操作フローに従う必要があります。
一般的なファイルシステム関数は次のとおりです。
分類 | 関数名 |
---|---|
ファイルを開く | fopen() |
ファイルを閉じる | fclose() |
ファイルの場所 | fseek()(ファイル位置のポインター位置を変更) rewind()(ファイル位置をファイルの先頭に配置) ftell()(ファイルポインターの現在の値を返す) |
ファイルの読み書き | fgetc()(ファイルから文字を読み取る) fgetc()(指定したファイルに文字を出力する) fgets()(文字列を読み取る) fputs()(指定したファイルに文字列を出力する) getw()(指定されたファイルから)ファイルからワードを読み取る(intタイプ) putw()(ワード(intタイプ)を指定したファイルに出力する fread()(指定したファイルからデータを読み取る) fwrite()(指定したファイルにデータを書き込む) Fscanf()(指定されたファイル形式でデータを入力) fprintf()(指定された形式で指定されたファイルにデータを書き込みます) |
1.ファイルを開いて閉じる
1. fopen()関数を使用してファイルを開きます。FILE *fopen(char *filename, char *mode);
filenameはファイル名(ファイルパスを含む)、modeはオープンモード、すべて文字列です。
ファイルの使い方 | 意味 |
---|---|
r(読み取り) | 読む |
w(書き込み) | 書く |
a(追加) | 追加 |
t(テキスト) | テキストファイル、書き込みなしで省略可能 |
b(バイナリ) | バイナリテキスト |
+ | 読み書き |
たとえば、次のとおりです。
FILE *fp = fopen("demo.txt", "r");
現在のディレクトリのdemo.txtファイルを「読み取り専用」モードで開き、fpがそのファイルを指すようにすることを示します。fpはしばしばファイルポインターと呼ばれます。
2. fcloseを使用してファイルを閉じます
int fclose(FILE *fp);
たとえば、次のとおりです。
fclose(fp);
ファイルが正常に閉じられている場合、fclose()の戻り値は0です。ゼロ以外の値が返された場合、エラーが発生したことを示しています。
2.ファイルの読み取りおよび書き込み関数
1. fget()およびfput()。
fgetc関数:指定されたファイルから文字を読み取ります。関数のプロトタイプは次のとおりです: `int fgetc(FILE * fp)`
fputc関数:指定されたファイルに文字を書き込み、書き込みが成功した場合は文字を出力し、それ以外の場合はEOFを返します。
関数のプロトタイプは次のとおりです:int fputc(char ch、FILE * fp)
2.fgets和fputs。
1. fgets()関数は、指定されたファイルから文字列を読み取り、文字配列に保存するために使用されます。関数のプロトタイプは次のとおりです。
char *fgets ( char *str, int n, FILE *fp );
strは文字配列、nは読み取る文字数、fpはファイルポインターです。
戻り値:文字配列の最初のアドレスは、読み取りが成功した場合、つまりstrが返されます。読み取りが失敗した場合はNULLが返されます。読み取りが開始されたときにファイルの内部ポインタがすでにファイルの最後を指している場合、文字を読み取ることができず、NULLも返されます
2. fputs()関数は、指定されたファイルに文字列を書き込むために使用され、その関数プロトタイプは次のとおりです。
int fputs( char *str, FILE *fp );
書き込みが成功すると負でない数が返され、失敗するとEOFが返される
3.fscanf和fprintf。
fscanf:指定したファイルから読み取ったデータをフォーマットします。関数プロトタイプは次のとおりです。
int fscanf(FILE *fp,"格式化字符串",【输入项地址表】);
fprintf:データをフォーマットして指定されたファイルに書き込みます。関数プロトタイプは次のとおりです。
int fprintf(FILE *fp,"格式化字符串",【输入项地址表】);
fprintf()は、正常に書き込まれた文字数を返し、失敗した場合は負の数を返します。fscanf()は、パラメーターリストで正常に割り当てられたパラメーターの数を返します。
4. fread和とfwrite。
fread:指定したファイルから一連のデータを読み取ります
fread(buffer, size, count, file);
buffer読み取ったデータ
サイズを格納するメモリの最初のアドレスデータアイテム
カウントあたりのバイト数データアイテムの数
fileファイルタイプポインター
fwrite:指定したファイルにデータセットを書き込みます
fwrite( buffer, size, count, file);
buffer出力データ
サイズの最初のアドレスデータ項目
数あたりのバイト数データ
タイプの数ファイルタイプへのファイルポインタ
3ファイルの配置
1.巻き戻し機能。
巻き戻し機能:ファイルの読み書きポインタをファイルの先頭に移動しますvoid rewind(FILE *fp);
2. fseek関数。
fseek関数:位置ポインターを任意の位置に移動するために使用されますint fseek ( FILE *fp, long offset, int whence );
ファイルポインタをwhenアドレスからオフセットアドレスに移動します。
3.ftell機能。
ftell関数:ファイルの現在の読み取り位置と書き込み位置を返し、エラーが発生した場合は(-1L)を返します。ftell(文件指针);