【发布时间】:2016-08-23 13:54:18
【问题描述】:
您好,我正在尝试开发一个可以从文本文件中读取的程序,例如
Edward Elric : 2000 300 3000 300
Super Trunks : 100 300 4000 900
Saitama Genos:
Goku Black: 12 333 33
我希望程序开始读取每一行中的分数,但跳过空格,例如每条记录最多有 4 个分数,但是有些记录的分数少于 4 个,由我希望程序读取的空格表示这些跳过空格的记录我希望重复直到下面的文件末尾是我为此部分编写的代码我很困惑我将如何继续这样做
【问题讨论】:
-
``std
::getline(file, line);)这是什么?另外,如果你想用 getline 跳过空格,你可以说std::getline(file>>std::ws, line);这一定是一个重复的问题,我会看看我能不能把它挖出来。 -
@AndyG
std::getline(file>>std::ws, line);不只修剪前导空白吗?我认为它不会消除名称和 :. 之间的空格。 -
@NathanOliver:没错。我想 OP 应该决定是使用像 boost 这样的修剪方法,还是将记录传递到
std::stringstream并继续stream >> std::ws模式。编辑:或者我可能不完全理解“跳过空白”的 OP 要求 -
你的文件中真的有空行吗?
-
@NathanOliver:对不起,如果我在描述中不清楚,上面给出的代码读取上面的分数,每行最多 4,但是有些行少于 4,并且留空采取 saitama genos和悟空黑例如我希望程序跳过这些空格但是上面的程序用最后读取的分数替换这些空格
标签: c++ string whitespace getline