文字列は数値で構成される入力として与えられ、C++ で整数配列に変換したいと考えています。
#include <string>
#include <iostream>
#include <sstream>
using std::string;
using std::stringstream;
using std::cout;
using std::endl;
int main(int argc,char** argv) {
string num="-24 2 90 24 50 76";
stringstream stream(num);
while(stream){
int n;
stream>>n;
cout<<n<<endl;
}
return 0;
}
出力 (GCC) :
-24 2 90 24 50 76 76
余分な値が得られるのはなぜですか?それらを整数配列に変換するのに効率的なのは何ですか?
アップデート:
文字列ストリームにスペース以外の区切り文字が含まれている場合、これを解析するにはどうすればよいですか? 例:
string num="-24,2,90,24,50,76";