私はMicrosoftVisualC ++で書いていますが、プログラムで標準の入力またはを使用してファイルから読み取るようにしたいと思います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());
}
しかし、これら2つを組み合わせて、簡単な(argc == 2)
チェックで入力ストリームイテレータをファイルストリームまたはstdinのいずれかで初期化し、楽しい方法で続行できるようにするにはどうすればよいですか?