C語言文件操作

打開文件

您可以使用 fopen( ) 函數來創建一個新的文件或者打開一個已有的文件,這個調用會初始化類型 FILE 的一個對象

FILE *fopen( const char * filename, const char * mode );

在這裏,filename 是字符串,用來命名文件,訪問模式 mode 的值可以是下列值中的一個:

【r】打開一個已有的文本文件,允許讀取文件。

【w】打開一個文本文件,允許寫入文件。如果文件不存在,則會創建一個新文件。在這裏,您的程序會從文件的開頭寫入內容。如果文件存在,則該會被截斷爲零長度,重新寫入。

【a】打開一個文本文件,以追加模式寫入文件。如果文件不存在,則會創建一個新文件。在這裏,您的程序會在已有的文件內容中追加內容。

【r+】打開一個文本文件,允許讀寫文件。

【w+】打開一個文本文件,允許讀寫文件。如果文件已存在,則文件會被截斷爲零長度,如果文件不存在,則會創建一個新文件。

【a+】打開一個文本文件,允許讀寫文件。如果文件不存在,則會創建一個新文件。讀取會從文件的開頭開始,寫入則只能是追加模式。

如果處理的是二進制文件,則需使用下面的訪問模式來取代上面的訪問模式

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

關閉文件

如果成功關閉文件,fclose( ) 函數返回零,如果關閉文件時發生錯誤,函數返回 EOF。這個函數實際上,會清空緩衝區中的數據,關閉文件,並釋放用於該文件的所有內存。EOF 是一個定義在頭文件 stdio.h 中的常量。

 int fclose( FILE *fp );

寫入文件

1.目錄必須事先存在

2.文件寫會有緩衝區,可以使用fflush(fp); ,刷新緩衝區,但平臺有差異,通過關閉文件和關閉程序也可以實現

寫字符,失敗返回EOF

int fputc( int c, FILE *fp );

寫字符串,失敗返回EOF

int fputs( const char *s, FILE *fp );

int fprintf(FILE *fp,const char *format, ...)

讀文件

讀字符

int fgetc( FILE * fp );

讀字符串

char *fgets( char *buf, int n, FILE *fp ); //n和換行符決定讀取的內容
int fscanf(FILE *fp, const char *format, ...) //遇到空格結束

 例子

寫文件

#include <stdio.h>
int main()
{
   FILE *fp = NULL;
   fp = fopen("./dong.txt", "w+");
   fprintf(fp, "My name is %s\n","DongXiaoDong");
   fputs("123 du du du du \n", fp);
   printf("寫入文件完成\r\n"); 
   fclose(fp);
}

讀文件

#include <stdio.h>
 
int main()
{
   FILE *fp = NULL;
   char buff[255];
   fp = fopen("./dong.txt", "r");
   fscanf(fp, "%s", buff);//空格結束 
   printf("1: %s\n", buff );
 
   fgets(buff, 255, (FILE*)fp);//換行符結束 
   printf("2: %s\n", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);
 
}

 參考:菜鳥教程 

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