1.头文件
stdio.h或者cstdio
2.声明
FILE *freopen(const char *filename,const char *mode,FILE *stream)
3.参数
* filename 文件名,用于存储输入输出的自定义文件名
* mode 文件打开的模式。和fopen中的模式相同
r -"只读访问" w - "只写访问" a - "追加写入"
*stream 一个文件,通常使用标准流文件
stdin - "标准输入" stdout - "标准输出" stderr - "标准错误"
4.功能
实现重定向,把与定义的标准流文件定向到由path指定的文件中。
标准流文件具体是指 stdin/stdout和stderr。
stdin标准输入流,默认是键盘
stdout标准输出流,默认是屏幕
stderr标准错误流,默认是屏幕
5.实例
(1)stdout到一个文本文件的重定向,把输出到屏幕的文本输出到一个文本文件中。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
if(freopen("./output.txt","r",stdout)==NULL)
fprintf(stderr,"error redirecting stdout\n");
for(int i=0;i<10;i++)
printf("%3d",i);
printf("\n");
fclose(stdout);
return 0;
}
(2)从文件in.txt中读入数据,打印到屏幕上
#include <iostream>
#include <cstdio>
int main()
{
int a,b;
freopen("./in.txt","r",stdin);
while(cin >> a >> b)
cout << a+b <<endl;
fclose(stdin);
return 0;
}
(3)从文件in.txt中读入数据,计算加输出到out.txt中
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b;
freopen("./in.txt","r",stdin);
freopen("out.txt","a",stdout);
while(cin >> a >> b)
cout << a+b << endl;
fclose(stdin);
fclose(stdout);
return 0;
}