“cin”和“File”的C通用接口
发布时间:2020-12-16 10:40:06 所属栏目:百科 来源:网络整理
导读:cin和文件输入是否有通用接口? 我想制作一个具有可选参数的程序 prog [input-file] 如果指定了输入文件,那么它应该从文件中读取,如果没有,则应该从cin读取. 据我所知,他们都实现了istream.你将如何设置它以便我可以在中执行某些操作var,其中in是一个istream
cin和文件输入是否有通用接口?
我想制作一个具有可选参数的程序 prog [input-file] 如果指定了输入文件,那么它应该从文件中读取,如果没有,则应该从cin读取. 据我所知,他们都实现了istream.你将如何设置它以便我可以在>>中执行某些操作var,其中in是一个istream. 解决方法#include <iostream> #include <fstream> int main(int argc,char **argv) { std::ifstream f; if (argc >= 2) { f.open(argv[1]); } std::istream &in = (argc >= 2) ? f : std::cin; // use in here } 您可以将这项工作中的一部分转移到帮助程序类中,以使其更清晰(请注意,在无法打开文件的情况下,这种行为略有不同): #include <iostream> #include <fstream> class ifstream_or_cin_t { std::ifstream f; public: ifstream_or_cin_t(const char *filename) { if (filename) { f.open(filename); } } operator std::istream &() { return f.is_open() ? f : std::cin; } }; static void do_input(std::istream &in) { // use in... } int main(int argc,char **argv) { do_input( ifstream_or_cin_t((argc >= 2) ? argv[1] : NULL)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Swift-3.0相对于2.3语法的一些变化
- c – Windows与Linux内存分配/ std :: list构造函数性能
- XCode:如何退出lldb swift repl
- c – const-pointer-to-type,指向const的指针和const讨论的
- Ruby 使用 WSDL 调用 Web服务
- cocos2d-x3.3 scrollviewdelegate不是类名或结构名 问题
- notepad++正则
- 烟草行业MES系统控件通过Citrix XenApp发布导致IE Crash解决
- flex – 我可以使用什么算法音频音量级别?
- 安装 – 如何启用redmine(ruby on rails)日志记录?