最初に文字列トークナイザーを使用する
std::string text = "token, test 153 67 216";
char_separator<char> sep(", ");
tokenizer< char_separator<char> > tokens(text, sep);
次に、取得する値の数が正確にわからない場合は、単一の変数を使用するのではなく、読み取る要素の数に適応できるa のa b c
ような配列を使用する必要があります。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