перевод строки — C ++, чтение строки, разделенной пробелом, но \ n включено

В общем, я пытаюсь прочитать строку:

Darth_Vader 100 100 60 40

каждая вещь должна входить в свою переменную. Все работает нормально, за исключением того, что переменная, которая должна содержать значение 40 в конце, не делает этого, но имеет значение -858993460.

Вот соответствующий код:

void Jedi::inputData(istream& inputStream)
{
string nameText, maxHPText, currHPText, atkBonusText, defBonusText;
inputStream >> nameText >> maxHPText >> currHPText >> atkBonusText >> defBonusText;

Jedi::setName(nameText);
Jedi::setMaxHealth(stoi(maxHPText));
Jedi::setCurrHealth(stoi(currHPText));
Jedi::setAttackBonus(stoi(atkBonusText));
Jedi::setDefenseBonus(stoi(defBonusText));
}

Как заставить inputStream игнорировать новую строку, взять 40, а затем перейти к следующей строке при следующем вызове функции?

0

Решение

Я бы попробовал getline (), а затем trim () в выбранной строке.

Теперь со строкой в ​​виде std :: string вы можете использовать строковый токенизатор для извлечения каждого «слова» и преобразовывать те значения, которые должны быть числовыми, в целые числа, используя atoi или библиотечную функцию, например boost::lexical_cast<int>(strValue)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]