fopen()函數參數:
r | 只讀的方式打開文件。 打開成功返回文件指針, 打開失敗返回NULL |
r+ | 以讀寫方式打開文件。 文件必須存在 |
rb+ | 以二進制模式讀寫文件,文件必須存在 |
rw+ | 讀寫一個二進制文件,允許讀和寫 |
w | 打開只寫文件,若文件存在,則文件長度清零,若文件不存在,則創建該文件 |
w+ | 打開讀寫文件,若文件存在,則文件長度清零,若文件不存在,則創建該文件 |
a | 以追加形式打開只寫文件。 如果文件不存在,創建文件; 若文件存在,在文件結尾處寫文件 |
a+ | 以追加形式打開讀寫文件。 如果文件不存在,創建文件; 若文件存在,在文件結尾處寫文件 |
?
b表示以二進制模式讀文件
1.在windows系統:文本模式下:文件以“\r\n”代表換行,以文本模式打開文件,并用fputs等函數寫入換行符”\n”時,函數會自動在“\n”之前加上”\r“。即實際上寫入的”\r\n“;
2.在類Unix/Linux系統中文本模式下,文件以“\n“代表換行,所以Linux系統中在文本模式下和二進制模式下并無區別。
?
getc()函數和putc()函數
getc()函數每次只從文件中讀取一個字符;
puts()表示一次只寫一個字符;
?
使用getc和putc實現文件加密
//加密過程 #include<stdio.h> #define SEC 5 int main() {FILE *p = fopen("./file.txt","r");FILE *p1 = fopen("./b.txt","w");if( NULL == p){printf("open file failed\n");}else{char c = 0;while( (c = getc(p)) != EOF ){c += 5;putc(c,p1);}}fclose(p);p = NULL;return 0; }
//解密過程 #include<stdio.h> #define SEC 5 int main() {FILE *p = fopen("./b.txt","r");FILE *p1 = fopen("./c.txt","w");if( NULL == p){printf("open file failed\n");}else{char c = 0;while( (c = getc(p)) != EOF ){c -= SEC;putc(c,p1);}}fclose(p);p = NULL;fclose(p1);p1= NULL;return 0; }
?