Я получаю случайные числа после запуска строки convert >> quarter
, я полагаю, что мне нужно очистить строку, прежде чем я запустил ее для преобразования снова, но как бы я это сделал? И может ли кто-нибудь объяснить, что происходит во время: (я нашел это как решение, но не совсем понимаю)Преобразование строки в int
stringstream convert(tokens[1]);
convert >> quarter;
-
Play parse(string toParse){
vector<string> tokens;
string play = toParse;
string oName, dName;
int x, quarter, minutes, down, yardstogo, startloc, playdesc;
for(int y=0; y<10; y++){
x = toParse.find(",");
tokens.push_back(toParse.substr(0,x));
toParse = toParse.substr(x+1);
}
stringstream convert(tokens[1]);
convert >> quarter;
convert.str(tokens[2]);
convert >> minutes;
convert.str(tokens[6]);
convert >> down;
convert.str(tokens[7]);
convert >> yardstogo;
convert.str(tokens[8]);
convert >> startloc;
playdesc = findPlay(tokens[9]);
Play a(quarter, minutes, tokens[4], tokens[5], down, yardstogo, startloc, playdesc, play);
return a;
}
Спасибо.
Как очистить stringstream (чрезвычайно) для поиска: HTTP://stackoverflow.com/questions/20731/in-c-how-do-you-clear-a-stringstream-variable – chris
Вам не нужно очищать его, потому что вы повторно инициализируете его с помощью 'convert.str (...) '. – Barmar
Я надеялся, что объясню это, Крис. Бармар, ты знаешь, что я тогда получу плохие значения? Квартал и минуты - это оба ints, когда я конвертирую строку четверти в int, это успешно, когда я конвертирую минуты, я получаю очень большое число. –