首先使用字符串分词器
std::string text = "token, test 153 67 216";
char_separator<char> sep(", ");
tokenizer< char_separator<char> > tokens(text, sep);
然后,如果您不确切知道将获得多少个值,则不应使用单个变量,而应使用类似或更好a b c
的数组a ,它可以适应您读取的元素数量。int input[200]
std::vector
std::vector<int> values;
BOOST_FOREACH (const string& t, tokens) {
int value;
if (stringstream(t) >> value) //return false if conversion does not succeed
values.push_back(value);
}
for (int i = 0; i < values.size(); i++)
std::cout << values[i] << " ";
std::cout << std::endl;
你必须:
#include <string>
#include <vector>
#include <sstream>
#include <iostream> //std::cout
#include <boost/foreach.hpp>
#include <boost/tokenizer.hpp>
using boost::tokenizer;
using boost::separator;
顺便说一句,如果您正在编程 C++,您可能希望避免使用printf
,并且更喜欢std::cout