1
下面是示例代碼和編譯結果在Linux中使用gcc4.8.1:爲什麼多個輸入迭代器會導致意想不到的結果?
//content of test.txt
1 2 3 4 5
int main()
{
fstream fs ("test.txt", std::fstream::in);
istream_iterator<string> is1(fs),eof1;
istream_iterator<string> is2(fs),eof2;
while(is1!=eof1){
cout<<"is1:"<<*is1++<<endl;
}
while(is2!=eof2){
cout<<"is2:"<<*is2++<<endl;
}
return 0;
}
//result unexpected
$./m
is1:1
is1:3
is1:4
is1:5
is2:2
從結果中,我們可以看到使用多個輸入迭代器時,它會給意想不到的結果。 有人能告訴我爲什麼會發生這種情況嗎?