当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ freopen()用法及代码示例


C++ 中的freopen() 函数尝试使用与另一个打开的文件相关联的文件流打开一个新文件。

freopen() 函数在<cstdio> 头文件中定义。

freopen()原型

FILE* freopen( const char* filename, const char* mode, FILE* stream );

freopen 函数首先尝试关闭使用 stream 打开的文件。文件关闭后,它会尝试以参数 mode 指定的模式打开参数 filename 指定的文件名(如果它不为空)。最后,它将文件与文件流 stream 相关联。

如果 filename 是空指针,则 freopen() 函数会尝试重新打开已与 stream 关联的文件。

参数:

  • filename:要打开的新文件。
  • mode:打开文件的模式。不同类型的文件访问方式如下:
文件操作的不同模式
文件访问模式 解释 如果文件存在 如果文件不存在
"r" 以读取模式打开文件 从头开始阅读 Error
"w" 以写入模式打开文件 删除所有内容 创建新文件
"a" 以追加模式打开文件 从头开始写 创建新文件
"r+" 以读写模式打开文件 从头开始阅读 Error
"w+" 以读写模式打开文件 删除所有内容 创建新文件
"a+" 以读写模式打开文件 从头开始写 创建新文件
  • stream :要关联文件名的文件流。

返回:

freopen() 函数返回:

  • 流成功。
  • 失败时为 NULL。

示例:freopen() 函数如何工作?

#include <cstdio>
#include <cstdlib>

int main()
{
	FILE* fp = fopen("test1.txt","w");
	fprintf(fp,"%s","This is written to test1.txt");

	if (freopen("test2.txt","w",fp))
		fprintf(fp,"%s","This is written to test2.txt");
	else
	{
		printf("freopen failed");
		exit(1);
	}

	fclose(fp);
	return 0;
}

运行程序时:

The following will be written to test1.txt:
This is written to test1.txt
The following will be written to test2.txt:
This is written to test2.txt

相关用法


注:本文由纯净天空筛选整理自 C++ freopen()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。