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++ forward_list::unique()用法及代碼示例
- C++ forward_list::emplace_front()用法及代碼示例
- C++ forward_list::max_size()用法及代碼示例
- C++ forward_list::reverse()用法及代碼示例
- C++ forward_list::swap()用法及代碼示例
- C++ forward_list::front()、forward_list::empty()用法及代碼示例
- C++ forward_list::remove()用法及代碼示例
- C++ forward_list::operator=用法及代碼示例
- C++ forward_list::clear()、forward_list::erase_after()用法及代碼示例
- C++ forward_list emplace_after()、emplace_front()用法及代碼示例
- C++ forward_list::splice_after()用法及代碼示例
- C++ forward_list resize()用法及代碼示例
- C++ forward_list merge()用法及代碼示例
- C++ for_each()用法及代碼示例
- C++ forward_list::begin()、forward_list::end()用法及代碼示例
- C++ forward_list::remove()、forward_list::remove_if()用法及代碼示例
- C++ forward_list assign()用法及代碼示例
- C++ forward_list insert_after()用法及代碼示例
- C++ forward_list::push_front()、forward_list::pop_front()用法及代碼示例
- C++ forward_list::before_begin()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ fopen()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。