【发布时间】:2009-12-16 02:04:34
【问题描述】:
我正在使用 Microsoft Visual C++ 编写程序,我希望我的程序可以从标准输入或使用 istream_iterator 的文件中读取。谷歌搜索互联网并没有显示我认为它必须多么简单。例如,我可以很容易地编写这个并从标准输入中读取:
#include <iostream>
#include <string>
#include <iterator>
using namespace std;
int main()
{
istream_iterator<string> my_it(cin);
for (; my_it != istream_iterator<string>(); my_it++)
printf("%s\n", (*my_it).c_str());
}
或者我可以写这个然后从文件中读取:
#include <iostream>
#include <string>
#include <iterator>
#include <fstream>
using namespace std;
int main(int argc, char** argv)
{
ifstream file(argv[1]);
istream_iterator<string> my_it(file);
for (; my_it != istream_iterator<string>(); my_it++)
printf("%s\n", (*my_it).c_str());
}
但是如何将这两者结合起来,以便通过简单的(argc == 2) 检查让我使用文件流或标准输入初始化输入流迭代器并继续我的快乐方式?
【问题讨论】:
标签: c++ file stdin istream-iterator