|
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 12
|
|||||||||||
С++ класс и чтение из файла05.05.2013, 15:38. Показов 6615. Ответов 11
Метки нет (Все метки)
Доброго времени суток.
Возник такой вот вопросец: "А как переменным из класса присвоить значения, которые мы прочитаем из файла?" Т.е имеем класс:
В которые из файла считываю значения:
Ничего не получается толкового из этого, объясните что не так делаю.
0
|
|||||||||||
| 05.05.2013, 15:38 | |
|
Ответы с готовыми решениями:
11
Класс и чтение из файла C++ чтение из файла в класс
|
|
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
| 05.05.2013, 15:59 | ||||||
|
Лучше уже писать вот так:
в каком .cpp файле Вы пишите и что именно Вы там пишите? Добавлено через 36 секунд Зачем Вам глобальные переменные?
0
|
||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||||||
| 05.05.2013, 16:03 | |||||||
|
Еще можно ко всему этому прикрутить операторы ввода-вывода для большей кошерности.
Ну и было бы совсем прекрасно, если бы вы писали интуитивно понятные имена идентификаторов и придерживались бы одного code-style'а.
2
|
|||||||
|
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 12
|
||||||
| 05.05.2013, 16:27 [ТС] | ||||||
|
Спасибо, учту=)
Глобальными я их объявляю, потому-что это объект используется во многих функциях.. В main.cpp всё пишу. Объявляю глобально этот объект: CAir Model(R0,Length,thetha); В этом же файле объявлены переменные R0,Length,thetha, значения которых я присваиваю из файла. Но вот после этого, эти значения не хотят присваиваться Model, как-то так. Добавлено через 11 минут lemegeton вы изменили мой класс до неузнаваемости=) Я просто только учусь..оказалось всё не так просто, как того хотел бы я=) Проще присвоить явно значения, чтобы вызвался конструктор..и никаких проблем=) Но охото сделать красивее, так что спасибо за советы, сейчас разберусь в том что вы написали. Добавлено через 10 минут Ещё один вопрос..если в файле находится больше значений, чем 3.. Если написать:
0
|
||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||||||||||||||
| 05.05.2013, 16:42 | |||||||||||||||
|
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Добавлено через 5 минут
1
|
|||||||||||||||
|
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 12
|
||||||||||||||||
| 05.05.2013, 17:15 [ТС] | ||||||||||||||||
|
Нет, суть не в том, чтобы увеличить количество переменных класса, а например если есть другие переменные, не зависящие от класса, которым из того же файла нужно присвоить значения.
Добавлено через 33 секунды Это я и хотел узнать, спасибо =)) Сейчас буду пробовать. Добавлено через 6 минут Блин, наверное никогда не сделаю..написал:
10 0.67 0.3 0.1 0.5 Добавлено через 20 минут Всё правильно работает, если заменить
0
|
||||||||||||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||||||
| 05.05.2013, 17:22 | ||||||
|
Если вы использовали мой кусок кода, то в конце файла образовался сепаратор (пробел или конец строки).
Это как раз говорит, что у файла еще не конец. ... и цикл едет считывать уже из ничего.Вот я, лично, не знаю корректного способа работать с файлами в С++. Найдете -- напишите. Простейший способ -- проверять, что файлу конец сразу после считывания. Если конец -- считанные данные не валидны.
0
|
||||||
|
868 / 528 / 148
Регистрация: 03.02.2013
Сообщений: 1,845
|
|||||||
| 05.05.2013, 17:29 | |||||||
|
lemegeton,
указываете приведённый к (char *) адрес на элемент структуры куда читать первым параметром, вторым - размер структуры в байтах (sizeof()) невалидность как структуры вернётся флагом, а уж сами данные - то тут стандартная защита от дурака должна быть это самый нормальный способ, аналогичен паскалевским типизированным файлам
0
|
|||||||
|
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 12
|
|
| 05.05.2013, 17:36 [ТС] | |
|
А можно как-нибудь в файле, откуда читаем оставлять комментарии? Типо:
1 //Один 2 //Два 3 //Три
0
|
|
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||
| 05.05.2013, 17:46 | |||
|
Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 12
|
|
| 05.05.2013, 17:49 [ТС] | |
|
Точно подмечено, непосильная..спасибо, обойдусь без этого значит=) Итак здорово мне помогли.
0
|
|
|
868 / 528 / 148
Регистрация: 03.02.2013
Сообщений: 1,845
|
||
| 05.05.2013, 17:51 | ||
|
lemegeton,
приведите пример или смысл сброса в файл класса с виртуальным методом, мне что-то в голову не приходит... далее если класс включает класс, он войдёт целиком и полностью как положено в структуру и её размер насчёт контейнеров и методов в частности - нужно по хорошему сделать в классе функции чтения/запись в/из потока всех нужных полей класса через перегрузку операторов >> и << лучше ничего тут не придумать
0
|
||
| 05.05.2013, 17:51 | |
|
Помогаю со студенческими работами здесь
12
Чтение из файла через класс Класс. Строка. Чтение из файла.
Чтение файла в класс с его предварительным поиском Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|