C ++,读取空格分隔的行,但包含\ n

时间:2015-09-25 01:57:46

标签: c++ newline space delimited

所以基本上我正在尝试阅读这一行:

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,然后转到下一行,以便下次调用该函数?。

1 个答案:

答案 0 :(得分:0)

我会尝试getline(),然后在获取的行上修剪()。

现在将该行作为std :: string,您可以使用字符串标记生成器来获取每个“单词”,并使用atoi或库函数将那些必须为数字的值转换为整数,如boost::lexical_cast<int>(strValue)