linux I/O编程,用freopen实现重定向,将一个文件设置为标准输入,另外一个设置为标准输出

代码分析

  程序分析

//main.c
#include  <stdio.h>
#define FILE_IN		"in_file.txt"
#define FILE_OUT	"out_file.txt"

int main()
{
	int a, b;
	FILE *fp1, *fp2;
	fp1 = freopen(FILE_IN, "r", stdin);
	//将in_file.txt设置为标准输入之后,下面的scanf就会从中读
	fp2 = freopen(FILE_OUT, "w", stdout);
	//将out_file.txt设置为标准输出之后,下面的printf就会打印到其中
	if ((fp1 == NULL) || (fp2 == NULL))
	{
		fprintf(stderr,"Files open error!\n");
		return 0;
	}

	while ((scanf("%d%d", &a, &b)) !=EOF)
	{
		printf("%d + %d = %d\n", a, b, a+b);
	}
	fclose(fp1);
	fclose(fp2);
	return 0;
}

执行结果

  不必解释,看图
执行结果