C语言里的写文件
轉載自:http://blog.csdn.net/shuimuzhiyuan/article/details/6908335
部分轉載自:http://blog.csdn.net/lijun5635/article/details/13095883
一 、fopen()函數中第一個形式參數表示文件名, 可以包含路徑和文件名兩部分。如:
"B:TEST.DAT"
"C:\\TC\\TEST.DAT"
如果將路徑寫成"C:\TC\TEST.DAT"是不正確的, 這一點要特別注意。
第二個形式參數表示打開文件的類型。關于文件類型的規定參見下表。
表 文件操作類型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字符 含義
────────────────────────────
?
| ?文件使用方式 | ??? 含義? |
| "r"(只讀)? | 為輸入打開一個文本文件,不存在則失敗 |
| "w"(只寫) | 為輸出打開一個文本文件,不存在則新建,存在則刪除后再新建 |
| ?"a"(追加) | 向文本文件尾部增加數據,不存在則創建,存在則追加 |
| 'rb"(只讀)? | 為輸入打開一個二進制文件,不存在則失敗 |
| "wb"(只寫)? | 為輸入打開一個二進制文件,不存在則新建,存在則刪除后新建 |
| "ab"(追加)? | 向二進制文件尾部增加數據,不存在則創建,存在則追加 |
| "r+"(讀寫)? | 為讀寫打開一個文本文件,不存在則失敗 |
| "w+"?(讀寫) | 為讀寫建立一個新的文本文件,不存在則新建,存在則刪除后新建 |
| ?"a+"(讀寫) | 為讀寫打開一個文本文件,不存在則創建,存在則追加 |
| "rb+"(讀寫) | 為讀寫打開一個二進制文件,不存在則失敗 |
| "wb+"(讀寫) | 為讀寫建立一個新的二進制文件,不存在則新建,存在則刪除后新建 |
| ?"ab+"(讀寫) | 為讀寫打開一個二進制文件,不存在則創建,存在則追加 |
?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
如果要打開一個CCDOS子目錄中, 文件名為CLIB的二進制文件, 可寫成:
fopen("c:\\ccdos\\clib", "rb");
如果成功的打開一個文件, fopen()函數返回文件指針, 否則返回空指針 (NULL)。由此可判斷文件打開是否成功。
?
二、有關文件操作的函數
本節所講的文件讀寫函數均是指順序讀寫, 即讀寫了一條信息后, 指針自動加1。下面分別介紹寫操作函數和讀操作函數。
1. 文件的順序寫函數
fprintf()、fputs()和fputc()函數
函數fprintf()、fputs()和fputc()均為文件的順序寫操作函數, 其調用格式如下:
int fprintf(FILE *stream, char *format, <variable-list>);
int fputs(char *string, FILE *steam);
int fputc(int ch, FILE *steam);
上述三個函數的返回值均為整型量。fprintf() 函數的返回值為實際寫入文件中的字罕個數(字節數)。如果寫錯誤, 則返回一個負數, fputs()函數返回0時表明將string指針所指的字符串寫入文件中的操作成功, 返回非0時, 表明寫操作失敗。fputc()函數返回一個向文件所寫字符的值, 此時寫操作成功, 否則返回EOF(文件結束結束其值為-1, 在stdio.h中定義)表示寫操作錯誤。
fprintf( ) 函數中格式化的規定與printf( ) 函數相同, 所不同的只是 fprintf()函數是向文件中寫入。而printf()是向屏幕輸出。
?
#include <stdio.h> #include <stdlib.h>void main() {FILE * fp = NULL ;fp = fopen("text.txt","w");char s[] = "That's good news" ;int i= 89 ;fputs(s,fp );fputc(':',fp);fprintf(fp,"%d\n",i);fputc('a',fp);fclose(fp); }
運行結果為:
?
當把 ? ??fp = fopen("text.txt","w"); ? ? ?里的"w"改成"a"時,文件的操作變成追加, 再一次運行程序,文件的內容為:
總結
- 上一篇: Python安装工具包踩过的坑
- 下一篇: JavaSE——面向对象基础(思想、类与