所以基本上我正在尝试阅读这一行:
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 :(得分:0)
我会尝试getline(),然后在获取的行上修剪()。
现在将该行作为std :: string,您可以使用字符串标记生成器来获取每个“单词”,并使用atoi或库函数将那些必须为数字的值转换为整数,如boost::lexical_cast<int>(strValue)