|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
||||||||||||||||
fstream не читает строки из файла!23.10.2009, 22:39. Показов 12501. Ответов 23
Метки нет (Все метки)
У меня Visual Studio 2008 использую язык С++
У меня есть определенный класс который мне нужно записать. (Класс кстати TStudent - листинг класса в конце) Вот код записи в файл:
И жить бы мне да радоваться - НО! Тут возникает потребность считать из файла, читаю я значит читаю класс, а он мне фигу ![]() Вот код чтения из файла:
Листинг класса:
0
|
||||||||||||||||
| 23.10.2009, 22:39 | |
|
Ответы с готовыми решениями:
23
Консоль не читает строки из текстового файла Написать программу, которая читает первые три символа из каждой строки текстового файла
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 23.10.2009, 23:25 | |
|
string содержит указатель на область памяти, в которой находится эта строка. Всё, что оказывается в файле, - это тот адрес (и прочее, но только не сама строка).
P.S. People - люди, народ. Великий студент наследует достояние целой нации!
1
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
||
| 23.10.2009, 23:34 [ТС] | ||
|
так вот в файле мое имя выглядет " [кракозябры] ихаил [дальше кракозябры]" и так несколько слов можно проглядеть. Добавлено через 3 минуты Народ состоит из людей в том числе и студенты и пенсионеры и продавцы и все остальные
0
|
||
|
|
|
| 23.10.2009, 23:37 | |
|
подсказали насчет строки правильно, а то что там будет находится - да что угодно, если хочешь таким образом что то корректно записывать в файл - не используй всяческих контейнеров, т.к. не известно где они в реальности свои данные хранят, плюс к этому ты читаешь из файла строку, а символ конца строки может встретится намного раньше, нежели длинна в байтах объекта.
1
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|||
| 24.10.2009, 00:13 [ТС] | |||
|
листинг файла в который произвожу запись
Добавлено через 1 минуту Функция getline читает в бинарном файле указанное количество символов либо читает строку в простом файле. Ну это на сколько я вычитал. Добавлено через 8 минут и кстати чем я пользуюсь getline или read не важно результат один и тот же...ну если думаете это из-за стрингов...ну посмотрю тогда в эту сторону сейчас...спасибо Добавлено через 25 минут
0
|
|||
|
|
||
| 24.10.2009, 00:35 | ||
|
а вообще подход немного не правильный... надо сохранять не весь класс, а чисто нужные данные, для этого можно внутри класса организовать структуру, которая будет хранить эти данные, а класс над этой структурой будет как интерфейс, в структуре данные хранить во встроенных типах (char,int...) и ее сохранять в файл
Добавлено через 2 минуты
1
|
||
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 00:58 [ТС] | |
|
Со структурой это мысль сейчас сделаю backup и посмотрю...
Первоначально я использовал char но мне пришлось от них отказаться в силу большого количества проблем при переводе из System::string в char .... ну то есть в char * num Такого вида легко перевести а вот в char num[10] уже никак... Добавлено через 1 минуту ну про boost я может на досуге после всего этого гемороя посмотрю для общего развития ![]() Добавлено через 17 минут Вот со структурой все это конечно очень красиво получилось...но не читается...ну не ужели реально из-за того что я string использую...
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 10:27 [ТС] | |
|
И так...даже после того как я заменил string на char * все равно так ничего и не прочиталось...проблема как мне кажется в другом...может нужен особенный способ открытия файла может еще что-то...у меня уже кончились идеи
Добавлено через 45 секунд Сохранять сохраняется читать не читается
0
|
|
|
|
|
| 24.10.2009, 11:12 | |
|
с указателями тоже не получится, т.к. размер указателя == 4 байта, а размер данных на которые он указывает чаще всего больше,и сами данные располагаются вне структуры/класса, поэтому в файл адрес этого указателя, который при восстановлении (чтении) будет указывать неизвестно куда.
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 11:36 [ТС] | |
|
Вот кстати так и получается
ну блин...реально чего делать-то? ![]() Добавлено через 5 минут String не получится char * не получится а как тогда...есть ли способ что бы получилось? Есть ли способ перевода System::string в обыкновенный char и обратно или как? Чего делать-то?
0
|
|
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
| 24.10.2009, 11:38 | |
|
а где ты учишься?
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 11:48 [ТС] | |
|
эээ...в универе
вообще-то...на заочке а что? МГУПИ так называемый ![]() Добавлено через 7 минут Вот я бы все понял если бы из файлов доставалась какая-нибудь непонятная кракозябра сплошная...да...тогда там либо типы надо указывать иначе либо еще что-то...но ведь из файла ни бита не читается...типа с понтом дела read проходит, а данных вообще никаких в переменных не оказалось...вот блин что меня и настораживает...
0
|
|
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
| 24.10.2009, 11:48 | |
|
Московский гос... ? я писал эту задачу когдато... исходноков нет нужна переписывать я просто подумал если ты в минске учиишся, я мог бы лично показать как делать
![]() выдели функции чтения записи в отдельный файл перед ними напиши заголовки иостреам,.. фстреам и пространство имён стд бывают такие загагулины
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 11:53 [ТС] | |
|
Нет я в Москве учусь
но можешь хотя бы принцип объяснить...почему не читается или куда хоть смотреть ![]() Добавлено через 1 минуту Я в прошлом году писал эту задачу но она была в консоле и написана на Borland C++ а теперь обязательно приперло в Visual С++ и с графикой все зло исходит у меня от System::string ну так объясни пожалуйста чего делать-то
0
|
|
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
| 24.10.2009, 11:58 | |
|
я обычно свои классы пишу с 0 - ля (не пользуясь другими..)
посмотри чему равен sizeof (TStudent) там очень много динамических вещей.. и ещё мне совсем не нравится преобразование в (char *) целого объекта попробуй вывести всё по очереди с чуством с толком с растоновкой
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|||||||||||
| 24.10.2009, 12:00 [ТС] | |||||||||||
|
вот смотри
![]() листинг файла чтения / записи они находятся в файла stud.cpp
Вот так все сейчас выглядит у меня и что характерно все сохраняется но ничего не читается вообще ни одной кракозябры не оказывается в переменной
0
|
|||||||||||
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
| 24.10.2009, 12:01 | |
|
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
||
| 24.10.2009, 12:04 [ТС] | ||
|
Вот листинг файла в который я сохранил данные:
Добавлено через 52 секунды char * мне не помогают сохраняются только ссылки...единственное если делать дополнительные переворот с char * в обычный char...я пока только этого не пробовал... Добавлено через 1 минуту Полностью избавиться от System::string я не могу потому что получаю данные из dataViewGrid а оттуда они только в таком виде и выходят...приходится переводить либо в char* Либо в обычный string...первый точно не вариант...
0
|
||
|
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
|
|
| 24.10.2009, 12:10 | |
|
я кы вечеру напишу и посмотрю что получится ... что то с разгона не прёт
0
|
|
|
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
|
|
| 24.10.2009, 12:12 [ТС] | |
|
Огромное спасибо
буду очень благодарен а-то стена меня скоро не выдержит
0
|
|
| 24.10.2009, 12:12 | |
|
Помогаю со студенческими работами здесь
20
fstream, создание файла
Запись в середину файла - fstream Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|