在使用一些系统接口时,会获取到标准输出内容,但这些内容会与本身自己程序的标准输出内容相混淆,因此有必要在要使用的标准输出前后打开关闭要重定向内容的开关。
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。
从标准输出中将数据存入文件中,代码如下
#include<stdio.h>
//首先定义要保存的数据的文件路径
std::ofstream file(m_strIDLPath.toStdString().c_str(), std::ios::out | std::ios::trunc);
//清除文件内容
file.close();
//开启文件内容重定向,参数类型为stdout
freopen(m_strIDLPath.toStdString().c_str(), "a+", stdout);
typeCode->print_IDL(0, ex);
fclose(stdout);
#include "stdafx.h"
#include<stdio.h>
int a,b;
freopen("D:\\stdin.txt","r",stdin);
freopen("D:\\stdout.txt","w",stdout);
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
fclose(stdin);
fclose(stdout);