Дарова люд,есть вопрос.Язык - С++У меня есть текстовый файл в котором
Дарова люд,есть вопрос.
Язык - С++
У меня есть текстовый файл в котором содержится информация допустим о студентах. ФИО,предметы и оценки - всё записываеться в ряд для одного студента и через пробел .Пример:
Тимошенко Валерий Петрович Физика 5 3 4
Мормуль Дмитрий Васильевич Математика 4 4 4
.....
Как считать с этого файла данные и занести в структуру
Struct Student... ... ...
и позже необходимо будет обращаться к этому массиву векторов и выводить некоторые данные на экран.
Так как считать этот файлик?
1 ответ
Василиса Марар
Когда заблаговременно знаешь порядок становится намного легче.
Вот к примеру обычная структура.
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 gt;gt; m.surname; //считываю фамилию в структуру
fin gt;gt; m.name;
fin gt;gt; m.second_name;
fin gt;gt; lesson;
//а сейчас оценки в инт, это уже будет сделать чуток труднее.
//для этого считываем инфу в чаровый буфер и через atoi переводим
fin gt;gt; temp;
m.mark[0]=atoi(temp);
fin gt;gt; temp;
m.mark[1]=atoi(temp);
fin gt;gt; temp;
m.mark[2]=atoi(temp);
Что-то на подобии этого, я считывал инфу в свою структуру, но вы просто считывайте её в ваш вектор и всё.
Непременно в условии цикла поставить "!название вашего объекта.eof()".
Ну и в конце закрыть файл способом .close();
Прикрепил скрин с маленьким образцом, ну и кинул как это работает с массивами. (с векторами это тоже отлично работает, просто мне лень)
Вот к примеру обычная структура.
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 gt;gt; m.surname; //считываю фамилию в структуру
fin gt;gt; m.name;
fin gt;gt; m.second_name;
fin gt;gt; lesson;
//а сейчас оценки в инт, это уже будет сделать чуток труднее.
//для этого считываем инфу в чаровый буфер и через atoi переводим
fin gt;gt; temp;
m.mark[0]=atoi(temp);
fin gt;gt; temp;
m.mark[1]=atoi(temp);
fin gt;gt; temp;
m.mark[2]=atoi(temp);
Что-то на подобии этого, я считывал инфу в свою структуру, но вы просто считывайте её в ваш вектор и всё.
Непременно в условии цикла поставить "!название вашего объекта.eof()".
Ну и в конце закрыть файл способом .close();
Прикрепил скрин с маленьким образцом, ну и кинул как это работает с массивами. (с векторами это тоже отлично работает, просто мне лень)
Jelvira Salerjan
Это классно что обычным массивом сделал но с ним работать я более менее умею а вот с векторами есть некие задачи)
Пашка Босков
А в чём проблема? Копируем инфу в сделанную нами переменную с типом твоей структуры, а потом эту структуру пуш бэком добавляешь в вектор.
Костик
string temp; while(fin.eof()) fin >> f.name; fin >> f.surname; my.push_back(f);
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей
Математика.
Определить предложения какие они по цели высказывания и по интонации
Русский язык.
"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.
Русский язык.
на одной грядке коротышки посадили 3 ряда морковок по 8 штук
Разные вопросы.
Облако тегов