Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
1

Считать данные из файла в конструкторе С++

02.06.2011, 19:27. Показов 2465. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте программисы, прошу помощь.

Имееться код программы.
Хочу сделать инициализацию данных из файла, в файле имена и телефонные номера. Как это сделать в конструкторе?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Конструктор
 
List < NODETYPE >::List()
 : firstPtr(0), lastPtr(0)
{
 
 ifstream File_db( "db_tel.txt", ios::in);
 
 if(!File_db)
 {
 cerr << "File coult not be opened!\n" << endl;
 exit(1);
 }
 
 // нужный код
 
 File_db.close();
 
} // конец конструктора List
Данные нужно занести в
tempPtr->data_fio - имя
и
tempPtr->data_tel - номер

думал может как то так сделать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// конструктор по умолчанию
template < typename NODETYPE >
List < NODETYPE >::List()
 : firstPtr(0), lastPtr(0)
{
 
 ifstream File_db( "db_tel.txt", ios::in);
 
 if(!File_db)
 {
 cerr << "File coult not be opened!\n" << endl;
 exit(1);
 }
 
 ListNode < NODETYPE > *currentPtr = firstPtr;
 ListNode < NODETYPE > *tempPtr;
 
 while( getch() != EOF )
 {
 tempPtr = currentPtr;
 File_db >> tempPtr->data_fio >> " ";
 File_db >> tempPtr->data_tel >> '\n';
 currentPtr = currentPtr->nextPtr;
 
 } // конец while
 
 File_db.close();
 
} // конец конструктора List
Но что то не то...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2011, 19:27
Ответы с готовыми решениями:

Что происходит с указателями на данные статического класса в конструкторе перемещения?
Правильно я понимаю что если объект(класс) обернуть статик кастом, то конструктор перемещения...

Считать данные из таблицы в doc файла
Добро всем! :senor: У меня возникла задача считать данные из таблицы которая в документе world,...

Как считать данные из файла в определенной структуре?
Доброго времени суток... написал для двух кнопок код одна добавляет человека тоесть &quot; его фамилию...

Тип String: считать данные из файла в массив строк
Есть файл с текстом вроде {10;название1;8;заметка} {5;название4;99;много строчный текст...

11
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.06.2011, 20:06 2
Это
File_db >> tempPtr->data_fio >> " ";
Вообще что?
Контретнее ЭТО File_db >> tempPtr->data_fio >> " "; вообще что?

И на вопрос "Как это сделать в конструкторе?", я настоятельно рекомендую не делать так в конструкторе.
1
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
02.06.2011, 20:50  [ТС] 3
Цитата Сообщение от Deviaphan Посмотреть сообщение
И на вопрос "Как это сделать в конструкторе?", я настоятельно рекомендую не делать так в конструкторе.
Благодарю за ответ. Но вот как тогда мне из файла данные занести в программу.
Сам код программы тут : Односвязный список, запись и чтение из файлаl

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это
File_db >> tempPtr->data_fio >> " ";
Вообще что?
Контретнее ЭТО File_db >> tempPtr->data_fio >> " "; вообще что?
Ну вообще я так хотел из файла прочитать информацию и занести ее в data_fio и data_tel :-)
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
03.06.2011, 06:12 4
Цитата Сообщение от UKOL Посмотреть сообщение
я так хотел
Но программа делает не то, что вам хочется, а то, что вы запрограммировали.)
File_db >> " " вообще не скомпилируется. Невозможно осуществлять запись в статическую константу.

Цитата Сообщение от UKOL Посмотреть сообщение
Но вот как тогда мне из файла данные занести в программу
Добавить к классу метод Read и вызвать его после создания объекта.
1
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
03.06.2011, 16:23  [ТС] 5
Хорошо, тогда какой код писать в Read(), хотябы примерчик
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
03.06.2011, 16:31 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void List::Read
{
 
 ifstream File_db( "db_tel.txt", ios::in);
 
 if(!File_db)
 {
 cerr << "File coult not be opened!\n" << endl;
 exit(1);
 }
 
 ListNode < NODETYPE > *currentPtr = firstPtr;
 ListNode < NODETYPE > *tempPtr;
 
 while( getch() != EOF )
 {
 tempPtr = currentPtr;
 File_db >> tempPtr->data_fio >> " ";
 File_db >> tempPtr->data_tel >> '\n';
 currentPtr = currentPtr->nextPtr;
 
 } // конец while
 
 File_db.close();
 
} // конец
1
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.06.2011, 23:21 7
Deviaphan,
C++
1
2
File_db >> tempPtr->data_fio >> " ";
 File_db >> tempPtr->data_tel >> '\n';
Подозреваю что это стоило бы исправить.
1
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
03.06.2011, 23:31  [ТС] 8
Цитата Сообщение от ForEveR Посмотреть сообщение
Подозреваю что это стоило бы исправить.
Если не затруднит то поподробнее... пожалуйтса.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 06:34 9
Цитата Сообщение от UKOL Посмотреть сообщение
Если не затруднит то поподробнее... пожалуйтса
Цитата Сообщение от Deviaphan Посмотреть сообщение
File_db >> " " вообще не скомпилируется. Невозможно осуществлять запись в статическую константу
Я же уже всё объяснил...

Цитата Сообщение от ForEveR Посмотреть сообщение
Подозреваю что это стоило бы исправить.
Моя копи-пастилка не умеет исправлять.)
1
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
04.06.2011, 12:00  [ТС] 10
Все, разобрался!!! Благодарю!

Но опять проблема, немогу понять почему не идет запись русского текста, вроде подключил setlocale(LC_ALL, "Russian")

Русский выводит в консоли хорошо, а вот запись - крякозябры
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 12:06 11
Для потока локаль задай. imbue.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.06.2011, 12:07 12
UKOL, Запись не пойдет так. Либо используйте спец функции системы, либо std::codecvt вероятно может помочь
0
04.06.2011, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2011, 12:07
Помогаю со студенческими работами здесь

Считать из файла данные, чтобы подсчитать сумму букв и цифр по отдельности
Как считать с файла данные, что б подсчитать суму в нём букв и цыфр по отдельности, как находить...

Считать данные из файла, строки с символом ";" - разбить
Программа должна считать данные из файла, строки с символом &quot;;&quot; разбить: (Пример) &quot;Hello;World...

Не могу считать из файла (посимвольно считать строчку)
Пытаюсь посимвольно из файла считать строчку.выдаёт access violation=(((.FILE* file11;...

Файл: Считать данные из текстового файла и записать их в другой файл, заданный пользователем...
Доброго времени суток. Выполняя задание по программированию столкнулся с проблемой. Необходимо...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru