У меня есть программа, которая должна принимать входные данные из текстового файла с несколькими строками. Каждая строка - это информация для учащегося, и эта информация также разделяется запятыми.C++ разделение запятой/getline
То, что я до сих пор
stringstream ss;
string data = "";
string student[50] = "";
int i = 0;
ifstream inFile;
inFile.open("file.txt");
while(getline(inFile, student[i]))
{
cout << student[i] << endl;
i++;
}
принимает каждую строку и присваивает его в массив студентов. Теперь у каждого ученика есть свое место.
Так что я должен разбить линию на каждый компонент (имя, dob, gpa, адрес и т. Д.), Что будет сделано в классе Student.
У меня есть эта переменная студент будет строка из одной строки
stringstream ss(student);
while(getline(ss, data, ',')){
cout << data << endl;
}
Выводит все данные по отдельности из файла.
Вопрос: Как изменить переменную stringstream в нижнем коде (цель не выводить, я сделал это для тестирования, чтобы увидеть, что происходит), мне нужно делать данные массив, а затем назначить элементы этого массива в переменные?
Есть ли тема, относящаяся к разделителю? Я посмотрел или не понял?
Благодаря
bUmp. Если кто-то может помочь, я был бы признателен. Я не буду на следующий час или около того, но я вернусь к любому, кто может помочь. Еще раз спасибо – user3562657
Как выглядит ваш класс «Студент»? Если 'getline (ss, data, ',')' правильно раскроет ваш вход, вы можете просто использовать 'getline (ss, studentVar.name ',')' и остальные переменные 'Student' в цикле. – IllusiveBrian
Если вы хотите переназначить 'std :: stringstream', вы можете сделать:' ss.clear(); ss.str («новые строковые данные»); '. – Galik