C++文件操作:fopen / fread / fwrite
1. 方法介紹
? ? ? ?1.1?open()函數:打開文件?
? ? ? ? ? ??包含頭文件: ? ??#include<stdio.h>
? ? ? ? ? ??格式:FILE * fopen(const char * path,const char * mode)?
? ? ? ? ? ? 參數: path:需要打開的文件路徑?
? ? ? ? ? ? mode:文件打開方式
mode function
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀數據。
rt+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾后,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個文本文件;允許讀寫。
at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據
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 <stdio.h> void main() { int num; char name[5]; FILE *fp; if ((fp = fopen("t.txt", "w")) == NULL) printf("cannot open file!\n"); scanf("%d %s",&num,name); fprintf(fp, "%d %s", num, name); fclose(fp); if ((fp = fopen("tt.txt", "w")) == NULL) printf("cannot open file!\n"); fwrite(&num, sizeof(int), 1, fp); fwrite(name, sizeof(char), 5, fp); fclose(fp); } 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C++文件操作:fopen / fread / fwrite的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC返回的临时对象指针成因?
- 下一篇: 如果番茄花园在美国...