Дарова народ,есть вопрос.
Язык - С++
У меня есть текстовый файл в котором содержится информация допустим о студентах. ФИО,предметы и оценки - всё записываеться в ряд для одного студента и через пробел .Пример:
Тимошенко Валерий Петрович Физика 5 3 4
Мормуль Дмитрий Васильевич Математика 4 4 4
.....
Как считать с этого файла данные и занести в структуру
Struct Student{... ... ...}
и потом нужно будет обращаться к этому массиву векторов и выводить некоторые данные на экран.
Так как считать этот файлик?

Ответы

Ответ дал: Slavque
0
Когда заранее знаешь порядок становится намного легче.
Вот к примеру простая структура.
struct stud
{
     string name;
     string surname;
     string second_name;
     string lesson;
     int mark[3];
};

Далее мы с помощью библиотеки fstream создаём экземпляр класса "ifstream" и соединяем его с файлом.
Пример: ifstream fin("myfile.txt);

Потом в цикле считываем инфу с открытого файла.
Вот пример для моей структуры.

student m;  //создал переменную с типом моей структуры.

while(!fin.eof())
{
     fin >> m.surname;     //считываю фамилию в структуру
     fin >> m.name;
     fin >> m.second_name;
     fin >> lesson;
     //а теперь оценки в инт, это уже будет сделать чуть сложнее.
     //для этого считываем инфу в чаровый буфер и через atoi переводим
     fin >> temp;     
     m.mark[0]=atoi(temp);     
     fin >> temp;     
     m.mark[1]=atoi(temp);     
     fin >> temp;     
     m.mark[2]=atoi(temp);

}

Что-то на подобии этого, я считывал инфу в свою структуру, но вы просто считывайте её в ваш вектор и всё.
Обязательно в условии цикла поставить "!название вашего объекта.eof()".
Ну и в конце закрыть файл методом .close();
Прикрепил скрин с маленьким примером, ну и кинул как это работает с массивами. (с векторами это тоже отлично работает, просто мне лень)
Приложения:
Ответ дал: Boromir4ik
0
Это классно что обычным массивом сделал но с ним работать я более менее умею а вот с векторами есть некоторые проблемы)
Ответ дал: Slavque
0
А в чём проблема? Копируем инфу в созданную нами переменную с типом твоей структуры, а потом эту структуру пуш бэком добавляешь в вектор.
Ответ дал: Slavque
0
string temp;
while(fin.eof())
{
fin >> f.name;
fin >> f.surname;
my.push_back(f);
}
Ответ дал: Boromir4ik
0
Добавь в телеге ) +380953449754 Есть один вопрос
Вас заинтересует