Я извлекаю ровно 14 токенов в каждой строке файла csv, и моя проблема в том, что в любом токене, если в нем есть пробелы, я хочу сохранить его, но я использую stringstream, поэтому при попытке извлечьданные, я исключаю пробелы, кроме одного и того же токена, он вводится неправильно и после этого испортит все данные.Мне нужен способ использовать stringstream, но я все же смогу сохранить пробелы в токенах.Я пытаюсь извлечь именно третий токен (в моем случае), но было бы неплохо узнать, как вообще я могу получить любой токен
Пример: CSV-файл будет:
PHIL, 100, Введение в философию, 6, Бобби, ... (все в одной строке)
У меня есть конструктор, который берет ссылку на объект stringstream, который должен инициализировать мои члены данных.Когда я получаю токен, в котором обычно есть пробелы, он останавливается на пробеле, и в этом примере он принимает только «Intro», а затем сохраняет его в моей переменной classTitle, но мне нужен весь «Intro to Philosophy».У меня также есть поле для имени учителя, но в имени человека почти нет пробелов.Но в целом, как мне сохранить интервал?
Это мой конструктор:
Course( stringstream &ss ){
ss >> dept >> courseNumber >> courseTitle >> numAs >> numBs >> numCs >> numDs >> numFs >> numIs >> numNRs
>> numSs >> numUs >> numWs >> instructor;
dump();
}
В основном, когда я читаю файл, дамп - это просто функция, которую я использую длявыведите данные, которые я получу, чтобы убедиться, что это правильно:
string dummyLine; // string meant to be used to skip over first line
getline(gradeFile, dummyLine);
while ( gradeFile.good() ){ // read until the end of the file
stringstream ss;
getline(gradeFile, input); // r)ead a line of input, stop at a comma
replace(input.begin(), input.end() , ',', ' ');
ss << input;
Course course(ss);
if ( count == 0 ){
//course.dump();
}
count++;
break;
}
Но на самом деле в моих выходных данных я получаю кучу 0 после 'Intro' в моих реальных данных, даже если числа в файле csvне равны 0, так что это также озадачивает меня, потому что я думал, что каждый токен после этого получит значение, которое получил бы токен, который я хотел бы ввести, если это не потому, что другие поля до 13 были целыми.