C++ファイル操作:fopen/fread/fwrite
2016 ワード
1.方法紹介
1.1 open()関数:ファイルを開く
ヘッダファイルを含む:#include
フォーマット:FILE*fopen(const char*path,const char*mode)パラメータ:path:開くファイルパスmode:ファイル開く方法
mode functionrは読み取り専用でファイルを開きます.このファイルは存在する必要があります.r+は、ファイルが存在する必要がある読み書き可能に開く.rb+読み書きはバイナリファイルを開き、データの読み取りを許可します.rt+読み書きはテキストファイルを開き、読み書きを許可します.w書き込み専用ファイルを開き、ファイルが存在するとファイル長が0にクリアされ、そのファイル内容が消えます.ファイルが存在しない場合は、ファイルを作成します.w+読み取り可能な書き込みファイルを開き、ファイルが存在するとファイル長がゼロになり、そのファイル内容が消えます.ファイルが存在しない場合は、ファイルを作成します.aファイルのみを追加で開きます.ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの最後に追加されます.つまり、ファイルの元の内容が保持されます.(EOF符予約)a+は、読み書き可能なファイルを追加で開きます.ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの末尾に加算され、ファイルの元の内容が保持されます.(元のEOF文字は保持しない)wbは、1つのバイナリファイルのみを書き込み開くか新規作成する.データのみを書き込み可能.wb+読み書きは、読み取りと書き込みを許可するバイナリファイルを開くか確立する.wt+読み書きは、1つのテキストファイルを作成するか、または作成する.読み書きを許可する.at+読み書きは、1つのテキストファイルを開き、読み取りまたはテキストの最後にデータab+読み書きを追加してバイナリファイルを開くことを許可し、読み取りと書き込みを許可するファイルの最後にデータを読み込むか、追加します.
1.2 fread()関数とfwrite()関数
fwriteパラメータ説明:bufferはデータを書き込んだ後にアドレスを格納し、sizeはブロック長、countはブロック数、実際の読み取り長はsize*count、戻り値はブロックが正常に書き込まれた速いcount数である.
2.例
1.1 open()関数:ファイルを開く
ヘッダファイルを含む:#include
フォーマット:FILE*fopen(const char*path,const char*mode)パラメータ:path:開くファイルパスmode:ファイル開く方法
mode functionrは読み取り専用でファイルを開きます.このファイルは存在する必要があります.r+は、ファイルが存在する必要がある読み書き可能に開く.rb+読み書きはバイナリファイルを開き、データの読み取りを許可します.rt+読み書きはテキストファイルを開き、読み書きを許可します.w書き込み専用ファイルを開き、ファイルが存在するとファイル長が0にクリアされ、そのファイル内容が消えます.ファイルが存在しない場合は、ファイルを作成します.w+読み取り可能な書き込みファイルを開き、ファイルが存在するとファイル長がゼロになり、そのファイル内容が消えます.ファイルが存在しない場合は、ファイルを作成します.aファイルのみを追加で開きます.ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの最後に追加されます.つまり、ファイルの元の内容が保持されます.(EOF符予約)a+は、読み書き可能なファイルを追加で開きます.ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの末尾に加算され、ファイルの元の内容が保持されます.(元のEOF文字は保持しない)wbは、1つのバイナリファイルのみを書き込み開くか新規作成する.データのみを書き込み可能.wb+読み書きは、読み取りと書き込みを許可するバイナリファイルを開くか確立する.wt+読み書きは、1つのテキストファイルを作成するか、または作成する.読み書きを許可する.at+読み書きは、1つのテキストファイルを開き、読み取りまたはテキストの最後にデータab+読み書きを追加してバイナリファイルを開くことを許可し、読み取りと書き込みを許可するファイルの最後にデータを読み込むか、追加します.
1.2 fread()関数とfwrite()関数
//
size_t fread(void *buffer, size_t size, size_t count, FILE *file);
//
size_t fwrite(const void *buffer, size_t size, size_t count, FILE *file);
freadパラメータ説明:bufferはデータを読み出した後にアドレスを格納し、sizeはブロック長であり、countはブロック数であり、実際の読み出し長はsize*countであり、戻り値はブロック成功読み出しブロックのcount数である.fwriteパラメータ説明:bufferはデータを書き込んだ後にアドレスを格納し、sizeはブロック長、countはブロック数、実際の読み取り長はsize*count、戻り値はブロックが正常に書き込まれた速いcount数である.
2.例
#include
void main()
{
int num;
char name[5];
FILE *fp;
if ((fp = fopen("t.txt", "w")) == NULL)
printf("cannot open file!
");
scanf("%d %s",&num,name);
fprintf(fp, "%d %s", num, name);
fclose(fp);
if ((fp = fopen("tt.txt", "w")) == NULL)
printf("cannot open file!
");
fwrite(&num, sizeof(int), 1, fp);
fwrite(name, sizeof(char), 5, fp);
fclose(fp);
}