getline() с разделителем не работает должным образом

Я пытаюсь разделить эту строку запятой в качестве разделителя. Я помещаю строку «Смит, Эрдос, Уильям», и она просто выводит «Уильям», но не Смит и Эрдос. Здесь должно быть что-то не так, чего я просто не вижу, кто-нибудь может помочь?

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

int main() {
    int numScenarios(0);
    int numPapers(0);
    int numWriters(0);
    std::vector<std::string> paperTitles (1);
    std::vector<std::string> paperAuthors (1);
    std::vector<std::string> splitAuthors (1);
    std::string token;
    std::string input;
    std::cin >> numScenarios;
    std::cin >> numPapers >> numWriters; 
    for (int i(0); i < numPapers; ++i) {
        std::getline(std::cin,input);
        std::istringstream iss(input);
        while(getline(iss,token,','));
        {
            std::cout << token << std::endl;
        }
        //paperTitles.push_back(input);
        //input = '\0';
    }
    for (int i(0); i < numWriters; ++i) {
        getline(std::cin,input);
        paperAuthors.push_back(input);
        input = '\0';
    }


return 0;
}

person avoliva    schedule 05.09.2012    source источник
comment
Нашел это (это проблема, которую вы не решаете) в связанных ссылках: stackoverflow.com/questions/2039918/   -  person chris    schedule 06.09.2012
comment
Вы также, кажется, вставляете вещи в конец своих векторов, но никогда не используете тот, который вы поместили туда во время создания.   -  person chris    schedule 06.09.2012


Ответы (1)


person    schedule
comment
-Wempty-body (в комплекте с -Wextra) — ваш друг. - person Adam Rosenfield; 06.09.2012
comment
Хотя при втором чтении -Wempty-body предупреждает только о пустых телах в операторах if, else и do...while, а не for или обычных операторах while, так что на самом деле здесь это не поможет. - person Adam Rosenfield; 06.09.2012