std::string创建一个值

std::stringdiscard a value

本文关键字:一个 string 创建 std      更新时间:2023-10-16

有时我使用std::stringstream来解析文本文件,例如

8 9
100 1002 3.345
100 102  2.345

std::stringstream ss(file);
int unused1, unused2, first_useful_value;
ss >> unused1 >> unused2;
ss >> first_useful_value >> ...

现在假设第一行,即

8 9 

对我来说都是无用的价值观,我只需要抛弃它们。我可能认为整行都是无用的我可能认为这些值中的一些是无用的。

我的问题是:有没有任何方法可以丢弃给定类型的值,而不必在堆栈上声明无用的变量(要么浪费,要么可读性较差)?

您可以使用std::stringstream::ignore和delimeter n跳过第一行,如下所示:

  ss.ignore(std::numeric_limits<std::streamsize>::max(), 'n');

现场演示

或者用作分隔符空间,或者将您的值分隔开来,一次丢弃一个:

ss.ignore(std::numeric_limits<std::streamsize>::max(), ' '); // delimiter is space
ss.ignore(std::numeric_limits<std::streamsize>::max(), ','); // delimeter is comma

现场演示

相关文章: