Я только начинаю в C ++, и у меня возникли проблемы в некоторых практических вопросах, которые я не могу понять. Мне нужно иметь возможность прочитать строку из консоли в виде:
N A B C... etc.
Где N - это число, и следующие входные данные будут разных типов и разного количества в зависимости от того, что есть N.
Мой подход заключается в том, чтобы прочитать N и затем запросить различные входные данные, основанные на том, что есть N. Но я должен принять все входные данные в одной строке, и я не смог получить какую-либо форму ввода для завершения после одного пробела. Так можно ли в любом случае перейти к следующему утверждению после получения одного числа и пробела? Или есть лучший способ решить эту проблему? Спасибо заранее.
EDIT:
Хорошо, я думаю, что я понял это, но я не до конца понимаю, поэтому мне придется взглянуть на istringstream. Вот что у меня есть.
vector<string> words;
string token, text;
getline(cin, text);
istringstream iss(text);
while ( getline(iss, token, ' ') ) {
words.push_back(token);
}
Это хороший способ сделать это, или я должен выбрать другой подход? И если кто-нибудь может, объясните мне эти строки?
while ( getline(iss, token, ' ') )
Я полагаю, это возвращает true, когда достигает пробела, при заполнении токена всеми предыдущими символами?
И этот меня смущает.
getline(cin, text);