首页 / C++ / C/C++ IO重定向
C/C++ IO重定向
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C/C++ IO重定向,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1127字,纯文字阅读大概需要2分钟。
内容图文
![C/C++ IO重定向](/upload/InfoBanner/zyjiaocheng/717/522589201bd14704a76f5ce904e2d22c.jpg)
转载,原始出处未知。
这个对OJ上做题很有用。OJ基本都是用标准输入输出(USACO除外)。但如果你在调试的时候也都是从控制台输入,那就太浪费宝贵的时间了。我们可以重定向标准输入,调试的时候从文件读,提交时从标准输入读。
C语言
方法比较简单。使用函数freopen():
freopen("data.in","r",stdin); freopen("data.out","w",stdout);
这样就把标准输入重定向到了data.in文件,标准输出重定向到了data.out文件。
这两句代码之后,scanf函数就会从data.in文件里读,而printf函数就会输出到data.out文件里了。
C++
对流重定向有两个重载函数:
streambuf* rdbuf () const; streambuf* rdbuf (streambuf *)
相当于get/set方法。
streambuf *backup; ifstream fin; fin.open("data.in"); backup = cin.rdbuf(); // back up cin's streambuf cin.rdbuf(fin.rdbuf()); // assign file's streambuf to cin // ... cin will read from file cin.rdbuf(backup); // restore cin's original streambuf
注意最后我们使用了cin.rdbuf(backup)把cin又重定向回了控制台
然而,如果用C语言实现同样的功能就不那么优雅了。
因为标准控制台设备文件的名字是与操作系统相关的。
在Dos/Windows中,名字是con
freopen("con", "r", stdin);
在Linux中,控制台设备是/dev/console
freopen("/dev/console", "r", stdin);
内容总结
以上是互联网集市为您收集整理的C/C++ IO重定向全部内容,希望文章能够帮你解决C/C++ IO重定向所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。