У меня проблемы со струнным потоком.Поэтому я получаю токены из CSV-файла и присваиваю их некоторым переменным, но я очищаю stringstream sv после того, как прочитал каждый токен и после самого первого токена он перестает работать, и я не уверен, почему.Закомментированная строка «перестает работать здесь» - это то место, где она перестает корректно извлекаться.В visual studio он говорит, что sv равен '0x000' даже после операции вставки.У меня даже есть другой цикл в моем коде, который очищает его один раз и выполняет вставку снова, и это работает.
int reviewid;
int userid;
int rating;
string reviewDate;
getline(reviewReader, dummyLine); // skip first line of input
while (getline(reviewReader, input)) {
stringstream ss, sv; // sv used for type conversions
// using delimeter of commas
// order of input in the file is [ movieid, moviename, pubyear]
// , first toiken is movieid, second token will be moviename
// third token will be pubyear
ss << input; // take in line of input
getline(ss, token, ','); // first token
sv << token; // convert toiken to int
sv >> reviewid;
getline(ss, token, ','); //
sv.str("");
sv << token; // STOPS WORKING HERE
sv >> movieid;
sv.str(""); // clear buffer
getline(ss, token, ',');
sv << token;
sv >> userid;
sv.str("");
getline(ss, token, ',');
sv << token;
sv >> rating;
sv.str("");
getline(ss, token, ',');
sv << token;
sv >> reviewDate;
sv.str("");
Review r = Review(reviewid, movieid, userid, rating, reviewDate); // make review object
reviews.push_back(r); // add it to vector of reviews
}