C語言讀寫文本文件的幾種模式,讀取文件的例子

打開文件的函數原型

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

 讀、寫文件的幾種模式

模式 描述
r(read) 具有文件的讀權限。
w(write) 具有文件的寫權限。
a(append) 在文件的末端添加數據。
b(binary) 文件的類型爲二進制文件。

t(text)

文件的類型爲文本文件。
+ 具有文件的讀寫權限。
  • r:以只讀的方式打開文件,如果文件不存在,則返回NULL。
  • r+:以讀寫的方式打開文件,如果文件不存在,則返回NULL。
  • a:追加文件並進行寫操作,如果文件不存在,就創建文件,否則新增的內容被添加到文件的末端。
  • rt:以讀方式打開一個文本文件。
  • wt:以寫方式打開打開一個文本文件,如果文件不存在,則新建該文件。
  • rt+:以讀寫方式打開一個文本文件
  • wt+:以讀寫方式打開一個文本文件,如果文件不存在,則新建該文件。

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

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


例子:以只讀的方式讀取文本文件,並且過濾其中沒有內容的行。 

#include <stdio.h>
#include <string.h>

#define BufferLen 256

// 讀寫文件
int main()
{
	FILE* fp = NULL;

	// 只允許讀文件// 打開文件
	fopen_s(&fp,"work.txt", "r");

	char buffer[BufferLen];

	// 判斷文件是否結束
	while (!feof(fp))
	{
		// 每次讀取之前將buffer置爲空
		memset(buffer,'\0', BufferLen * sizeof(char));

		// 讀取出來的buffer會默認在最後一位加'\0'
		fgets(buffer, BufferLen, fp);

		// 所以讀取的文件如果其中一行爲空,則默認其長度爲1
		// 過濾其中沒有內容的行
		size_t len = strlen(buffer);
		if (len == 1)continue;

		printf("work contexts: %s", buffer);
	}

	// 關閉文件
	fclose(fp);
	
	return 0;
}

 

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