當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ fopen()用法及代碼示例


C++中的fopen()函數以某種模式打開指定的文件。

fopen()原型

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

fopen() 函數接受兩個參數並返回與參數文件名指定的文件關聯的文件流。

它在<cstdio> 頭文件中定義。

不同類型的文件訪問方式如下:

文件訪問模式 解釋 如果文件存在 如果文件不存在
"r" 以讀取模式打開文件 從頭開始閱讀 Error
"w" 以寫入模式打開文件 刪除所有內容 創建新文件
"a" 以追加模式打開文件 從頭開始寫 創建新文件
"r+" 以讀寫模式打開文件 從頭開始閱讀 Error
"w+" 以讀寫模式打開文件 刪除所有內容 創建新文件
"a+" 以讀寫模式打開文件 從頭開始寫 創建新文件

參數:

  • filename:指向包含要打開的文件名的字符串的指針。
  • mode :指向指定文件打開模式的字符串的指針。

返回:

  • 如果成功,fopen() 函數將返回一個指針,指向控製打開的文件流的 FILE 對象。
  • 失敗時,它返回一個空指針。

示例 1:使用 fopen() 以寫入模式打開文件

#include <cstdio>
#include <cstring>

using namespace std;

int main()
{
	int c;
	FILE *fp;
	fp = fopen("file.txt", "w");
	char str[20] = "Hello World!";
	if (fp)
	{
		for(int i=0; i<strlen(str); i++) 
			putc(str[i],fp);
	}
	fclose(fp);
}

當你運行程序時,它不會產生任何輸出,而是會寫“Hello World!”。到文件"file.txt"。

示例 2:使用 fopen() 以讀取模式打開文件

#include <cstdio>

using namespace std;

int main()
{
	int c;
	FILE *fp;
	fp = fopen("file.txt", "r");
	if (fp)
	{
		while ((c = getc(fp)) != EOF)
			putchar(c);
		fclose(fp);
	}
	return 0;
}

運行程序時,輸出將是 [假設與示例 1 中的文件相同]:

Hello World!

示例 3:使用 fopen() 以追加模式打開文件

#include <cstdio>
#include <cstring>

using namespace std;

int main()
{
	int c;
	FILE *fp;
	fp = fopen("file.txt", "a");
	char str[20] = "Hello Again.";
	if (fp)
	{
		putc('\n',fp);
		for(int i=0; i<strlen(str); i++) 
			putc(str[i],fp);
	}
	fclose(fp);
}

當您運行該程序時,它不會生成任何輸出,但會在文件"file.txt" 的換行符中追加"Hello Again"。

相關用法


注:本文由純淨天空篩選整理自 C++ fopen()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。