Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
#1

Чтение из файла в структуру - C++

24.10.2013, 01:36. Просмотров 691. Ответов 25
Метки нет (Все метки)

Здравствуйте, имеется функция чтения из файла в структуру и последующего вывода на экран:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void ReadFileFromStrucure (int StructSize,char *FileName,StructEmployee *UsrStruct) {
    ifstream labfile (FileName);
    int iter = 0;
    while(labfile.read((char*)&UsrStruct[iter++],sizeof(UsrStruct)));
        labfile.close();
}
void OutputStructEmployee (int StructSize, char *FileName, StructEmployee *UsrStruct) {
    ReadFileFromStrucure(StructSize,FileName,UsrStruct);
    //ifstream labfile(FileName);
    //while (!labfile.eof())
    for (int iter = 0; iter < StructSize; iter++) {
        cout << "ФИО: " << UsrStruct[iter].fullname << endl;
        cout << "Образование: " << UsrStruct[iter].education << endl;
        cout << "Стаж: " << UsrStruct[iter].expirience << endl;
        cout << "Должность: " <<UsrStruct[iter].appointment << endl << endl;
    }
    labfile.close();
}
Собственно при обращении к UsrStruct[iter].fullname программа перестаёт работать, что не так не представляю
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 01:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из файла в структуру (C++):

Чтение файла в структуру - C++
Здравствуйте, не получается прочитать файл и компоненты записать в структуру. Допустим, содержание файла: 4 6 Text1 2 Text2 ...

Чтение файла в структуру - C++
Всем привет! Есть бинарный файл test.txt, в нём заголовок, который я пытаюсь прочитать в структуру, но что-то не идёт... Содержание...

Чтение данных из файла в структуру - C++
Нужно считать данные с блокнота и поработать с ними. программу написала, но подчеркивает mass что не так #include &quot;stdafx.h&quot; ...

Чтение из текстового файла в структуру - C++
Всем привет, я новичок в C++. Испытав многое (безрезультатно) решил просить помощи у вас. Что необходимо: 1) Чтение из файла txt данных...

Чтение из бинарного файла в структуру - C++
Собственно вопрос в заголовке, есть структура: struct StructEmployee {; int id; string fullname; string...

Чтение данных из файла в структуру - C++
Необходимо считать данные из блокнота, а в последствии работать с ними,написала,но не работает, помогите , пожалуйста. int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 03:49 #16
Цитата Сообщение от dane.yeah Посмотреть сообщение
alsav22, вторая. с char * это были эксперименты чтоб избавиться от ошибки
А вы зачем тогда код такой выложили?

Добавлено через 2 минуты
Цитата Сообщение от dane.yeah Посмотреть сообщение
вторая. с char * это были эксперименты
Т.е., структура такая?:
C++
1
2
3
4
5
6
7
struct StructEmployee {;
    int id;
    string fullname;
    string appointment;
    string education;
    int expirience;
} *UsrStruct;
Тогда это что?
C++
1
2
3
4
5
6
7
StructEmployee StructInit() {
    StructEmployee UsrStruct;
    UsrStruct.fullname = new char[256];
    UsrStruct.appointment = new char[256];
    UsrStruct.education = new char[256];
    return UsrStruct;
}
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 03:51  [ТС] #17
Цитата Сообщение от alsav22 Посмотреть сообщение
А вы зачем тогда код такой выложили?

Добавлено через 2 минуты

Т.е., структура такая?:
C++
1
2
3
4
5
6
7
struct StructEmployee {;
    int id;
    string fullname;
    string appointment;
    string education;
    int expirience;
} *UsrStruct;
Тогда это что?
C++
1
2
3
4
5
6
7
StructEmployee StructInit() {
    StructEmployee UsrStruct;
    UsrStruct.fullname = new char[256];
    UsrStruct.appointment = new char[256];
    UsrStruct.education = new char[256];
    return UsrStruct;
}
Так вышло, не посмотрел.
Да такая, а это выделение памяти для данных полей структуры, со стрингами возникает ошибка, упомянутая выше.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 03:56 #18
Цитата Сообщение от dane.yeah Посмотреть сообщение
Да такая, а это выделение памяти для данных полей структуры, со стрингами возникает ошибка, упомянутая выше.
Под объекты string вы ещё и память выделяете?

Добавлено через 50 секунд
Цитата Сообщение от dane.yeah Посмотреть сообщение
со стрингами возникает ошибка, упомянутая выше.
А #include <string> сделать?
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 03:59  [ТС] #19
Цитата Сообщение от alsav22 Посмотреть сообщение
Под объекты string вы ещё и память выделяете?

Добавлено через 50 секунд

А #include <string> сделать?
а как вы как предполагаете считывать из файла в структуру не выделяя память под строки?

<string> просто не нужна т.к. ничего из этой библиотеки не используется.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 04:00 #20
Цитата Сообщение от dane.yeah Посмотреть сообщение
<string> просто не нужна т.к. ничего из этой библиотеки не используется.
А string у вас - это что?
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 04:02  [ТС] #21
Цитата Сообщение от alsav22 Посмотреть сообщение
А string у вас - это что?
для того чтобы работать со string достаточно пространства имён std;
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 04:04 #22
И вот это тогда что?
C++
1
UsrStruct[iter].fullname.c_str()
Вы с чем вообще работаете? Разве не с объектами класса string?

Добавлено через 1 минуту
Цитата Сообщение от dane.yeah Посмотреть сообщение
а как вы как предполагаете считывать из файла в структуру не выделяя память под строки?
Вы представление о классе string, вообще, какое-то имеете?

Добавлено через 30 секунд
Цитата Сообщение от dane.yeah Посмотреть сообщение
для того чтобы работать со string достаточно пространства имён std;
Не достаточно. Пока нужный инклуд не сделаете, в этом пространстве имён ничего не будет.
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 04:10  [ТС] #23
Цитата Сообщение от alsav22 Посмотреть сообщение
тогда что?
C++
1
UsrStruct[iter].fullname.c_str()
Вы с чем вообще работаете? Разве не с объектами класса string?
strlen(const char *str)
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы представление о классе string, вообще, какое-то имеете?
Да.
Цитата Сообщение от alsav22 Посмотреть сообщение
Не достаточно. Пока нужный инклуд не сделаете, в этом пространстве имён ничего не будет.
До сих пор было, да и добавление этой библиотеке не решает проблемы
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 04:37 #24
Цитата Сообщение от dane.yeah Посмотреть сообщение
До сих пор было, да и добавление этой библиотеке не решает проблемы
Особенности компиляторов. Хотя нужные инклуды всё равно нужно делать. Я так понял, вы пытаетесь реализовать бинарное чтение\запись структур с объектами string?

Добавлено через 16 минут
Мой вам совет: если не хотите мучаться, то, или используйте структуру с массивами char, или, если структура со string, не используйте бинарного чтения\записи. Удачи.
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
24.10.2013, 04:39  [ТС] #25
Цитата Сообщение от alsav22 Посмотреть сообщение
Особенности компиляторов. Хотя нужные инклуды всё равно нужно делать. Я так понял, вы пытаетесь реализовать бинарное чтение\запись структур с объектами string?
Да, так и есть)

Добавлено через 1 минуту
А с чарами ещё больше проблем возникает, а по заданию надо бинарник, так что придётся мучаться)
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 04:50 #26
Цитата Сообщение от dane.yeah Посмотреть сообщение
А с чарами ещё больше проблем возникает,
Если и возникают, то никак не больше, чем с бинарным чтением\записью структур со string. Совет остаётся в силе.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 04:50
Привет! Вот еще темы с ответами:

Построчное чтение из файла в структуру - C++
Всем доброго дня! Есть структура вида struct Product { char code; char name; double price;

Чтение данных из текстового файла в структуру - C++
Добры вечер новичках и профессионалам! Изучаю C++ только четыре месяца и сейчас разбираюсь с записью из файла (библиотека fstream). И...

Чтение из файла в список (двунаправленный), используя структуру - C++
Добрый день, немного запутался со списками, и файлом... Будьте добры, помогите разобраться. Есть файл, считываю информацию в список, а...

Запись структуры и чтение из файла в структуру ( как бы лучше ) - C++
Подкиньте идею как лучше записать структуру в файл и обратно из файла в структуру У меня есть мысль: даны 4 элемента вводим их в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2013, 04:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru