c中怎麼寫檔案
標準流程為:
1 通過fopen函式開啟檔案;
a) 原型
FILE * fopen(const char * path,const char * mode);
b) 引數
path為要開啟的檔名,可以是絕對路徑,也可以是相對路徑。
mode為開啟檔案的方式。對於寫檔案,可以是"w", "wb", "w+", "wb+","a", "a+", "ab", "ab+"等。這些模式都可以支援寫操作,區別為:
包含w的為直接寫入,如果被開啟的檔案已存在,那麼會對檔案中的原始資料進行覆蓋。
包含a的為附加模式,如果被開啟檔案已存在,那麼新寫入的內容會在檔案結尾新增。
包含b的模式,開啟的檔案按照二進位制方式進行寫入。
包含+的模式,開啟的檔案為可讀寫。
無論哪種方式,如果原始檔案不存在,則會建立該名字的新檔案。
c) 返回值
返回值為FILE *型,是一個檔案指標。後續所有操作均依賴這個檔案指標值。
如果返回值為NULL,代表出錯。常見的出錯原因可能有
檔案存在,操作者沒有寫許可權。
對檔案所在目錄沒有寫許可權。
檔案所在磁碟分割槽已滿。
2 通過fwrite/fprintf/fputc/fputs等函式寫入資料;
a) size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
功能為向開啟的檔案stream中寫入每塊大小為size共計count塊資料,資料的起始地址為buffer,返回實際寫入的塊數,出錯時返回負值。
b) int fprintf (FILE* stream, const char*format, [argument]);
功能為向開啟的檔案stream中格式化輸入資料,格式有format決定,後續引數為寫入的資料,功能類似於printf。返回實際寫入字元值,出錯時返回負值。
c) int fputc (int c, FILE*fp);
功能為向開啟的檔案fp中寫入字元c。該函式僅寫入一個字元。引數c雖然為int型,但該函式僅使用其低八位。 返回值為輸入引數c的ASCII碼,出錯時返回-1.
d) int fputs (const char *s, FILE *stream);
功能為向開啟的檔案stream寫入字串s(不包括結束符'