最近工作與讀取掰邢、存儲文件打交道比較多耕驰,特記錄一下据德。
C
注意包含頭文件:#include<stdio.h>
fopen
函數(shù)定義:FILE * fopen ( const char * path, const char * mode )
返回值:如果文件成功打開肩民,返回指向FILE對象的指針,否則返回NULL
參數(shù):path
為文件路徑蚪战;mode
為打開文件方式牵现,具體如下表:
mode | 功能 |
---|---|
"r" | read 打開只讀文件铐懊,文件必須存在 |
"w" | write 打開只寫文件,如果文件已存在瞎疼,則將已有文件內(nèi)容舍棄科乎,按照空文件對待 |
"rb" | read binary 只讀打開二進(jìn)制文件,文件必須存在 |
"wb" | write binary 只寫打開二進(jìn)制文件丑慎,如果文件已存在喜喂,則將已有文件內(nèi)容舍棄,按照空文件對待 |
"r+" | read/update 打開可讀寫文件竿裂,文件必須存在 |
"w+" | write/update 打開可讀寫文件玉吁,若文件存在則文件長度清為0,即該文件內(nèi)容會消失腻异。若文件不存在則建立該文件 |
"a" | append 以附加的方式打開只寫文件进副。若文件不存在,則會建立該文件悔常,如果文件存在影斑,寫入的數(shù)據(jù)會被加到文件尾 |
fread
函數(shù)定義:size_t fread(void *buffer, size_t size, size_t count, FILE *file)
返回值:成功讀取的對象個(gè)數(shù),若出現(xiàn)錯(cuò)誤机打,則可能小于count
參數(shù):buffer
為讀取出的數(shù)據(jù)存放地址矫户;size
為塊長度,count
為塊數(shù)量残邀,實(shí)際讀取字節(jié)數(shù)為 size * count
皆辽,file
為指向FILE
類型的指針
fwrite
函數(shù)定義:size_t fwrite(const void *buffer, size_t size, size_t count, FILE *file)
返回值:成功寫入的對象個(gè)數(shù),若出現(xiàn)錯(cuò)誤芥挣,則可能小于count
參數(shù):buffer
為待寫入數(shù)據(jù)的存放地址驱闷;size
為塊長度,count
為塊數(shù)量空免,實(shí)際寫入字節(jié)數(shù)為 size * count
空另,file
為指向FILE
類型的指針
fclose
函數(shù)定義:int fclose(FILE *stream)
返回值:如果流成功關(guān)閉,則該方法返回零蹋砚。如果失敗扼菠,則返回 EOF
示例
#define OUT_FEATURE_SIZE 1024
int main()
{
printf("fopen begin\n");
float feature[OUT_FEATURE_SIZE]; // 特征數(shù)組
FILE *fp;
fp = fopen("feature.txt", "rb"); // 打開二進(jìn)制特征文件
fread(feature, OUT_FEATURE_SIZE * sizeof(float), 1, fp); // 將 txt 文件中存儲的特征讀入到 float 數(shù)組中
fclose(fp);
printf("fopen end\n");
return 0;
}
C++
注意包含頭文件:#include <fstream>