Разделение строка в целые числа с помощью istringstream в C ++

Я пытаюсь использовать istringstream , чтобы разбить простую строку на серию целых чисел:

#include <string>
#include <iostream>
#include <sstream>
#include <vector>

using namespace std;

int main(){

    string s = "1 2 3"; 
    istringstream iss(s);   

    while (iss)
    {
        int n;
        iss >> n;
        cout << "* " << n << endl;
    } 
}

И я получаю:

* 1
* 2
* 3
* 3

Почему последний элемент всегда выходит дважды? Как это исправить?

17
задан Znorg 2 March 2011 в 14:16
поделиться