![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Записываю структуру с разнородными полями в файл... записывается нормально... Когда считываю и вывожу на экран, выводятся еще лишние символы-кракозяблики... что делать?
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
понятия не имею. Предлагаешь угадать? |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
показать исходник
|
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
structsize - переменная int типа, содержащая размер структуры fileptr - указатель на файл filesize() - функция для вычисления размера файла a - указатель на динамич память для структуры show_current() - собственно функция для вывода данных из структуры Это сообщение отредактировал(а) console - 1.3.2007, 16:56 |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
эээ.... ну я так не играю...
|
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
В остальном все ок...
Менюшка... выбираем - "Вывести все данные на экран" и запускается функция showall() {с содержанием, моего предыдущего поста} |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
тут будет каракули выводить |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Каракули выводит при выводе собственно инфы из файла
Добавлено @ 17:03 я в DOS-кодировке пишу... так что все ок с рус |
|||
|
||||
| Fazil6 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
я повторяю : ты хочешь чтобы угадали? Покажи что ты выводишь, как выводишь. Русский текст будет каракулями выводится. Как инфа в файле хранится, может надо не в текстовом режиме открывать? Как structsize вычисляется? Кроме данных в файле ведь еще всякие переносы строк могут быть... Добавлено @ 17:12
буфер как выделяется и коль уж это char* и так как в show_current(a); длина прочитанная не передается, то надобы нуль в конце ставить самому |
||||
|
|||||
| console |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Структура:
Вычисления размера структуры:
Функция записи структуры в файл:
Функция вычисления размера файла:
Добавлено @ 17:15 Буфер:
|
||||||||||
|
|||||||||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
почему а, когда там везде p? ЗЫ это наверно какой-то секретный проект. Нам все-таки не хотят показать исходник целиком. ЗЗЫ почему malloc? На ANSI С пишете? |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Sartorius, очень секретный ))))
Да... Глобальный указатель...
Добавлено @ 17:27 Кстати... fread() возвращает не единицу... проблема Добавлено @ 17:36 Отчего тогда в остальных полях ничего не вылазит, а лишь в поле char phone[7] ? |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Насчет возврата fread() разобрался:
Пример с http://www.cplusplus.com/
|
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 1 Всего: 3 |
Не решен вопрос с последним полем.... вместе с полезной инфой выводится фигня
Добавлено @ 18:45 Размер последнего поля увеличил на единицу, теперь все ок... Возникла другая проблема... При считывании (если в файле больше одной структуры) выводится всегда первая.... Тут наверное дело с указателем в файле..... fread() разве не перемещает его? |
|||
|
||||
| Pilligrim |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 9.6.2006 Репутация: 1 Всего: 1 |
console, легче: записывай структуру в файл почленно и считывай соответственно так же. Во-первых, уменьшишь размер файла(избежишь так называемого выравнивания в структуре), а во-вторых просто легче будет: избежишь лишних проблем)))
Перемещает Это сообщение отредактировал(а) Pilligrim - 1.3.2007, 20:52 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |