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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。