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

Чтение из бинарного файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
twiss
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 6
02.10.2010, 23:53     Чтение из бинарного файла #1
Добрый вечер.Возникла проблема при чтении имени объекта из бинарного файла,запись в файл идет по структуре |char|int|double|float|'/0'| (запись идет с первого байта)
C++
1
2
3
4
5
6
           char lname =0;
            char* tname = new char[lname];
            _read(hFile, tname, (int)lname);
            tname[lname]='\0';
            offset+=lname;
            _lseek(hFile, offset, SEEK_SET);
Для того что бы выделить память под имя,нужно считать его размер в переменную lname,но как это реализовать мозгов не хватает.
Направьте на правильный путь.
Зарание спасибо!.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2010, 23:53     Чтение из бинарного файла
Посмотрите здесь:

C++ Чтение из бинарного файла
Чтение бинарного файла C++
Чтение из бинарного файла C++
Чтение бинарного файла C++
C++ Чтение из бинарного файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IchMors
96 / 92 / 4
Регистрация: 16.05.2010
Сообщений: 307
03.10.2010, 00:16     Чтение из бинарного файла #2
ну... используйте какую нибудь темповскую переменную, а потом удалите. лубо запись приблизительно следующего вида:
C++
1
char* tname = new char [];
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
03.10.2010, 01:45     Чтение из бинарного файла #3
twiss, на самом деле в таких случаях проще поступают: перед строкой записывают его длину и потом прежде чем прочитать строку, читают длину и вся проблема решена.
twiss
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 6
03.10.2010, 09:11  [ТС]     Чтение из бинарного файла #4
gooseim, Это то понятно,и сделал бы так,но преподаватель требует без длинны имени в первом байте(сразу имя)
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.10.2010, 12:02     Чтение из бинарного файла #5
twiss, а строки фиксированной длинны тоже не проходят? В принципе структуры одинакового размера в файлах хранить довольно удобно - можно сразу по несколько штук в массив читать, или из массива в файл сохранять...
twiss
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 6
03.10.2010, 16:35  [ТС]     Чтение из бинарного файла #6
C++
1
2
3
4
5
            char* tname = new char[];
            _read(hFile, tname, strlen(tname));
            tname[strlen(tname)-1]='\0';
            offset+=strlen(tname);
            _lseek(hFile, offset, SEEK_SET);
Решил проблему следующим образом,корректно ли это?
IchMors
96 / 92 / 4
Регистрация: 16.05.2010
Сообщений: 307
04.10.2010, 13:01     Чтение из бинарного файла #7
twiss, а Вы уверены в правильности 3-й строки? данные, которые в конце строки, не задевает "\0"?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2010, 13:37     Чтение из бинарного файла
Еще ссылки по теме:

Чтение бинарного файла C++
C++ Чтение из бинарного файла
C++ Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.10.2010, 13:37     Чтение из бинарного файла #8
Цитата Сообщение от IchMors Посмотреть сообщение
а Вы уверены в правильности 3-й строки?
Цитата Сообщение от twiss Посмотреть сообщение
char* tname = new char[];
А это ничего, что размер не указан?
Yandex
Объявления
04.10.2010, 13:37     Чтение из бинарного файла
Ответ Создать тему
Опции темы

Текущее время: 23:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru