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

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

02.06.2011, 19:27. Показов 2805. Ответов 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
Но что то не то...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2011, 19:27
Ответы с готовыми решениями:

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

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

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

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

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

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

Цитата Сообщение от UKOL Посмотреть сообщение
Но вот как тогда мне из файла данные занести в программу
Добавить к классу метод Read и вызвать его после создания объекта.
1
 Аватар для UKOL
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
03.06.2011, 16:23  [ТС]
Хорошо, тогда какой код писать в Read(), хотябы примерчик
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
03.06.2011, 16:31
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
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.06.2011, 23:21
Deviaphan,
C++
1
2
File_db >> tempPtr->data_fio >> " ";
 File_db >> tempPtr->data_tel >> '\n';
Подозреваю что это стоило бы исправить.
1
 Аватар для UKOL
136 / 80 / 22
Регистрация: 17.11.2009
Сообщений: 283
03.06.2011, 23:31  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Подозреваю что это стоило бы исправить.
Если не затруднит то поподробнее... пожалуйтса.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 06:34
Цитата Сообщение от UKOL Посмотреть сообщение
Если не затруднит то поподробнее... пожалуйтса
Цитата Сообщение от Deviaphan Посмотреть сообщение
File_db >> " " вообще не скомпилируется. Невозможно осуществлять запись в статическую константу
Я же уже всё объяснил...

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

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

Русский выводит в консоли хорошо, а вот запись - крякозябры
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
04.06.2011, 12:06
Для потока локаль задай. imbue.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.06.2011, 12:07
UKOL, Запись не пойдет так. Либо используйте спец функции системы, либо std::codecvt вероятно может помочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2011, 12:07
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru