字符串流不将整数分配给整数向量



我有一个由逗号分隔的不同整数字符串。例如";45,67,2,3,8,9123,5,6,3,9,4,7,2,4,5,69,9,9,99";。我想把这行读成字符串流,并把整数放在整数的向量中。在控制台上;stdout上没有响应";。

代码如下:

#include <sstream>
#include <vector>
#include <iostream>
using namespace std;
vector<int> parseInts(string str) {
stringstream myString;
vector<int> of_integers;
char ch;
int a;
for(int k = 0; k<str.size(); k++)
{
myString >> a >> ch;
of_integers[k] = a;
}
return of_integers;
}
int main() {
string str;
cin >> str;
vector<int> integers = parseInts(str);     //function parseInts
for(int i = 0; i < integers.size(); i++) {
cout << integers[i] << "n";
}
return 0;
}

工作代码:

#include <sstream>
#include <vector>
#include <iostream>
using namespace std;
vector<int> parseInts(string str) {
stringstream myString(str);
int size = str.size();
vector<int> of_integers;
char ch = ',';
int a=0;
while(myString.eof()!=1)
{
myString >> a >> ch;
of_integers.push_back(a);
}
return of_integers;
}
int main() {
string str;
cin >> str;
vector<int> integers;
integers = parseInts(str);
for (int i = 0; i < integers.size(); i++) {
cout << integers[i] << "n";
}
return 0;
}

感谢@jpmarinier引用了一个有用的字符串流函数.eof((,该函数可以检测字符串流何时结束。代码运行良好。

输入:

45,67,2,3,8,9,123,5,6,3,9,4,7,2,4,4,5,69,9,99

输出:

45
67
2
3
8
9
123
5
6
3
9
4
7
2
4
4
5
69
9
99

最新更新