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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
#1

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

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

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

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

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
Но что то не то...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.06.2011, 20:06     Считать данные из файла в конструкторе С++ #2
Это
File_db >> tempPtr->data_fio >> " ";
Вообще что?
Контретнее ЭТО File_db >> tempPtr->data_fio >> " "; вообще что?

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

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

Цитата Сообщение от UKOL Посмотреть сообщение
Но вот как тогда мне из файла данные занести в программу
Добавить к классу метод Read и вызвать его после создания объекта.
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
03.06.2011, 16:23  [ТС]     Считать данные из файла в конструкторе С++ #5
Хорошо, тогда какой код писать в Read(), хотябы примерчик
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 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();
 
} // конец
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.06.2011, 23:21     Считать данные из файла в конструкторе С++ #7
Deviaphan,
C++
1
2
File_db >> tempPtr->data_fio >> " ";
 File_db >> tempPtr->data_tel >> '\n';
Подозреваю что это стоило бы исправить.
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
03.06.2011, 23:31  [ТС]     Считать данные из файла в конструкторе С++ #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Подозреваю что это стоило бы исправить.
Если не затруднит то поподробнее... пожалуйтса.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 06:34     Считать данные из файла в конструкторе С++ #9
Цитата Сообщение от UKOL Посмотреть сообщение
Если не затруднит то поподробнее... пожалуйтса
Цитата Сообщение от Deviaphan Посмотреть сообщение
File_db >> " " вообще не скомпилируется. Невозможно осуществлять запись в статическую константу
Я же уже всё объяснил...

Цитата Сообщение от ForEveR Посмотреть сообщение
Подозреваю что это стоило бы исправить.
Моя копи-пастилка не умеет исправлять.)
UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
04.06.2011, 12:00  [ТС]     Считать данные из файла в конструкторе С++ #10
Все, разобрался!!! Благодарю!

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

Русский выводит в консоли хорошо, а вот запись - крякозябры
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 12:06     Считать данные из файла в конструкторе С++ #11
Для потока локаль задай. imbue.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2011, 12:07     Считать данные из файла в конструкторе С++
Еще ссылки по теме:
Считать данные из файла в буферную переменную C++
C++ Как считать данные с файла и записать в массив?
C++ Считать данные из файла от одной строки до другой
Рандомный выбор из файла: считать данные из txt C++
Как считать данные из файла и вывести в файл C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.06.2011, 12:07     Считать данные из файла в конструкторе С++ #12
UKOL, Запись не пойдет так. Либо используйте спец функции системы, либо std::codecvt вероятно может помочь
Yandex
Объявления
04.06.2011, 12:07     Считать данные из файла в конструкторе С++
Ответ Создать тему
Опции темы

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