文件的打開(fopen)、讀取和存儲

首先是fopen
FILE* fopen(const char* path,const char* mode)
返回的是一個結構體指針,指向的是一個結構體對象,不能直接使用,要交給其它函數使用
path是地址
mode:
“r”(read)以只讀方式打開,文件不存在則打開失敗,返回值爲空
"r+"以只讀寫方式打開,文件不存在則打開失敗,返回值爲空
“w”(write)以只寫方式打開,文件不存在則創建,文件存在則清空
"w+"以只讀寫方式打開,文件不存在則創建,文件存在則清空
“a”(app)以只寫方式打開,文件不存在則創建,文件存在則追加
"a+"添加讀權限

文件則分二進制文件和文本文件,二進制文件打開時二進制符號,文本文件打開則是字符
接下來說的是二進制和文本文件的讀寫

二進制文件
size_t fwrite(const void* ptr,size_t size,size_t nmemb,FILE* stream)
功能:從內存讀取數據到文件中
ptr:用來讀取數據的內存首地址
size:要讀取的字節數
nmemb:要讀取的字數
stream:fopen的返回值
返回值是nmemb,就是實際讀取到的字數

size_t fread(void* ptr,size_t size,size_t nmemb,FILE* stream)
功能:從文件讀取數據到內存中
ptr:用來存放數據的內存首地址
size:要讀取的字節數
nmemb:要讀取的字數
stream:fopen的返回值
返回值是nmemb,就是實際存儲的字數

文本文件
int fprintf(FILE* stream,const char* format,…)
功能:將數據存放到文本文件中
stream:fopen返回值
format:數據格式 例如"%s"
…,要讀取的數據地址,例如 str[50]

int fscanf(FILE* stream,const char* format,…)
功能:將數據從文件中讀取
stream:fopen返回值
format:數據格式 例如"%s"
…,要存放的數據地址,例如 str[50]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章