【问题标题】:C++, Reading a space delimited line but the \n is includedC ++,读取空格分隔行但包含\ n
【发布时间】:2015-09-25 01:57:46
【问题描述】:

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

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

【问题讨论】:

  • 你试过使用getline()吗?
  • 是的,我有。我什至尝试接受最后一条数据作为新行分隔,但这对我也不起作用。
  • 请详细说明,我们需要有关问题的更多详细信息。也可以尝试发布更多代码。
  • 我提供的链接中的说明是否不清楚?

标签: c++ newline space delimited


【解决方案1】:

我会尝试 getline(),然后在获取的行上使用 trim()。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2013-08-04
    相关资源
    最近更新 更多