【发布时间】:2014-06-02 04:04:00
【问题描述】:
我想知道如何在 C++ 中从字符串中提取数字。我从输入中获取字符串并将获得多行,但我已经可以读取行。 注意:行总是有偶数个整数
我希望代码如下所示:
std::getline(std::cin, line);// line looks something like "10 3 40 45 8 12"
int a, b;
while(!line.empty() /*line still has ints to extract*/) {
a = someMethod(line);//gets first int. So, 10 first loop, 40 second, 8 third
b = someMethod(line);//gets second int. So, 3 first loop, 45 second, 12 third
myMethod(a,b);//a method from elsewhere in my code. It's here so you know that I need both a and b
}
任何类似的东西都会有所帮助。非常感谢!
【问题讨论】:
-
std::stringstream怎么样? -
我该如何使用 stringstream 呢?我只是对它有点熟悉。
-
@user2670028:您将从
line构造它,然后以与从std::cin提取整数相同的方式使用它。图书馆以这种方式很好地正交。但是,有些事情需要注意 - 请参阅 How to parse a string to an int in C++。 -
@Simon 我想我已经想出了一个可以使用这个想法的方法,谢谢!
-
在这里提问之前你有没有做任何研究。这个答案太多了,随便搜一下:parse space delimited numbers c++ and google 都有很多解决方法。