そのようなコードセグメントが与えられた場合:
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream file("1.txt");
string str((istream_iterator<char>(file)),istream_iterator<char>());
file.close();
cout<<str<<endl;
}
このコードは、istream_iteratorを使用してファイルから文字列を作成します。
文字列コンストラクターの最初のパラメーターが括弧のペアで囲まれていることに注意してください。かっこを省略するとエラーになります。VC ++ 2008では、リンクエラーが発生します。G ++では、コードの出力が間違っています。
かっこがとても不思議です。違いは何ですか、そしてその理由は何ですか?