freopen函数用法

freopen函数简介

freopen是被包含于C标准库头文件stdio.h中的一个函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。

freopen函数说明

函数名:freopen
函数,以指定模式重新指定到另一个文件。模式用于指定新文件的访问方式。
头文件:stdio.h
C89函数声明:
*FILE freopen( const char filename, const char mode, FILE stream );
C99函数声明:
FILE
freopen(const char * restrict filename, const char * restrict mode, FILE * restrict stream);
形参说明:
filename:需要重定向到的文件名或文件路径。
mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“只写访问”、"a"表示“追加写入”。
stream:需要被重定向的文件流。
返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。

程序实例

附加说明:
stdout(Standardoutput)标准输出
stdin(Standardinput)标准输入
stderr(Standarderror)标准错误

例子1

这个例子实现了从stdout到一个文本文件的重定向。即,把输出到屏幕的文本输出到一个文本文件中。

#include "stdafx.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
	if(freopen("D:\\output.txt","w",stdout)==NULL)
		fprintf(stderr,"error redirecting stdout\n");

	for(int i=0;i<10;i++)
		printf("%3d",i);

	printf("\n");
	fclose(stdout);

	return 0;
}

运行结果:
十个数输出到了D盘根目录下文本文件output.txt中。

例子2

从文件in.txt中读入数据,计算加和输出到out.txt中

#include "stdafx.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
	int a,b;
	freopen("D:\\in.txt","r",stdin);
	freopen("D:\\output2.txt","w",stdout);
	while(scanf("%d%d",&a,&b)!=EOF)
		printf("%d\n",a+b);

	fclose(stdin);
	fclose(stdout);

	return 0;
}

运行结果:
计算的和输出到了D盘根目录下文本文件output2.txt中。

你可能感兴趣的:(C++)