一个关于用标准输入输出重定向进行debug的小技巧

本文介绍了如何在刷编程题时,通过C/C++的freopen函数将标准输入和输出重定向到文件,便于分析和调试。作者还提到,这种方法适用于大部分情况,但流输入输出可能需用文件流处理。通过指定文件路径,可以方便地进行错误查找。

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

总所周知,在我们刷oj题的时候,一般是用cmd终端进行输入输出的,输入和输出都显示在同一屏幕上,导致我们有时候对输出进行难以分析

所以这边分享一个小技巧,利用标准输入输出重定向分离输入和输出以便debug

同时如果有标准答案文件,也可以进行文件比较,更容易发现出错的样例

这里只提这个方法,对于平常刷题已经足够了,而且非常容易使用

但是流输入输出好像不能用这个方法(我没试过,但是感觉不行,得用文件流)

头文件:

//C++
#include<cstdio>
//C
#include<stdio.h>

只需要把以下语句放在main函数的开头:

freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);

就可以使用

但是我试了试,到处都找不到相应的文件,cmd终端上输出结果倒是没了

所以我建议把文件的路径也写上去,并且在相应位置新建相应的文件

freopen("D:\\vscode_c\\work\\output.txt", "w", stdout);

就像这个,我当时只用了输出的,所以这边只演示输出的

注意在字符串中 \\ 代表的是 ' \ '

后面我是成功得在相应文件里面得到了输出,然后和一万多行的标准输出文件比对了

并找到了自己愚蠢的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值