使用freopen函数重定向输入流

在编程调试过程中,当需要处理大量输入数据时,freopen函数可以帮助将输入流从控制台重定向到文件,避免手动输入的麻烦。通过指定文件名和访问模式,freopen可以改变文件流的行为,例如将标准输入(stdin)指向数据文件,或把标准输出(stdout)的内容写入特定文件。使用后,程序的读写操作会自动针对指定文件进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有那么一阵子,调试程序的时候经常遇到大量输入数据的情况,如果从控制台输入,将是非常耗时且容易出错,幸好有freopen函数,可以将输入重定向到文件中。也就是说,将输入数据放到文件中,调用freopen函数将输入流从控制台重定向为文件,那么后续从控制台读取输入数据的操作,将自动变为从文件中读取,不需要手动从控制台输入了。

用一个简单的例子,记录下freopen的用法:

int main(int argc, char **argv)
{
	char name[16];
	unsigned int number;
	unsigned int score;

	if (!freopen("input.txt", "r", stdin))		//将标准输入重定向到input.txt文件(只读模式)
		return -1;
	scanf("%u %s %u", &number, &name[0], &score);	//这里将从input.txt文件中读取数据,而不是从标准输入读取
	fclose(stdin);

	return 0;
}
 

当然,freopen也可以重定向输出流,如果想将printf的输出结果放到output.txt文件中,那么可以通过下面的语句来实现:

freopen("output.txt", "w", stdout);


以下是freopen函数简介:

函数声明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值