freopen及其拓展函数,大数据调试so easy (ง •_•)ง
刚开始大工程,体验到大数据调试的难度,困顿且无奈的时候想到了曾经遇到大佬使用的freopen函数,
当时不明觉厉,什么都没想就直接收藏起来了,缘分啊 d=====( ̄▽ ̄*)b ,太妙了
我用萌新的角度理解了这个函数,下文贴代码解释,
看不明白可以先创建txt文档,命名为in,然后写 两个 用一个空格间隔的 数字 进去,保存,
然后直接运行代码,看多出来的txt文档,就知道发生了什么了。
很简单很好用 d=====( ̄▽ ̄*)b

/* freopen("in.txt","r",stdin)的作用就是把标准输入流stdin重定向到in.txt文件中, 这样在用scanf或是用cin输入时便不会从标准输入流读取数据, 而是从in.txt文件中获取输入。 只要把输入数据事先粘贴到in.txt,调试时就方便多了。 类似的, freopen("out.txt","w",stdout)的作用就是把stdout重定向到out.txt文件中, 这样输出结果需要打开out.txt文件查看。 简言: freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt 文件中读取 freopen("out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中 需要说明的是: 1. 在调用freopen函数实现重定向时,路径名字一定要写正确。 2. 可以不使用输入重定向,仍然通过键盘输入,也可以不使用输出重定向,仍然在控制台查看输出,这都是可以的,看自己需求来定。 */ #include <cstdio> int main() { /* 若是在做OJ题目 按以下格式更方便 #ifdef ONLINE_JUDGE #else freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif */ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); //freopen("out.txt","aw",stdout);// 保留原文件内容 int a,b; while(~scanf("%d %d",&a,&b)) printf(" %4d + %4d == %4d\n",a,b,a+b); puts("???");//out.txt文本只有“???”没有“完成” fclose(stdin);//关闭文件 fclose(stdout);//关闭文件 freopen("CON","w",stdout);//返回原输出屏幕 puts("完成"); //同理,返回原输入,注意路径必须相同 /* freopen("CON","r",stdin); puts("输入a的值"); scanf("%d",&a); printf("%d\n",a); */ return 0; }
谢谢学习源。
博客的简介:
https://blog.csdn.net/xylon_/article/details/81257268
官方解释:(推荐QQ浏览器,自带翻译)
http://www.cplusplus.com/reference/clibrary/cstdio/freopen.html
拓展学习:
https://www.cnblogs.com/yym2013/p/3236226.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!