Разобрать строку в int

Я довольно новичок в кодировании, и я надеялся, что кто-нибудь может мне помочь? Я пытаюсь прочитать в строке целые числа, разделенные пробелом, и разобрать их в (в конечном итоге в связанный список) вектор.

поэтому, как только у меня есть вектор целых, существуют итераторы для вектора STL, но как я могу перебирать узлы в списке ссылок, а не в STL?

#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
cout << "Enter some integers, space delimited:\n";
string someString;
getline(cin, someString);

istringstream stringStream( someString );
vector<string> parsedString;
char splitToken = ' ';

//read throguh the stream
while(!stringstream.eof()){
string subString;
getline( stringStream, subString, splitToken);
if(subString != ""){
parsedString.push_back(subString);
}
}

return EXIT_SUCCESS;
}

1

Решение

stringstream может автоматически обрабатывать разделители следующим образом:

cout << "Enter some integers, space delimited:\n";
string someString;
getline(cin, someString);

istringstream stringStream( someString );
vector<int> integers;
int n;
while (stringStream >> n)
integers.push_back(n);
0

Другие решения

Так как это разделитель пространства, почему бы не просто:

#include <iostream>
using namespace std;

int main() {
int a;
vector<int> v;
while (cin >> a) {
v.push_back(a);
}

for (int i = 0; i < v.size(); ++i) {
int b = v[i];
}

return 0;
}

И кстати, ctrl-D или нецелочисленный ввод, как char, прекратит это while,

1

По вопросам рекламы [email protected]