Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / нужно считать из файла в структуру!!! / 11 сообщений из 11, страница 1 из 1
01.09.2005, 21:18
    #33247169
Yuragod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
подскажите как можно из файла считать в структуру (в которой переменные int long char причем с битовыми полями) по байту!!Я стал делать так у меня некоторые байты не хотят лезти в char(пишут пустые значения) и еще некоторые в char считываются:вместо b3 пишет ffffffb3(в чем проблема???)!помогите!!
...
Рейтинг: 0 / 0
01.09.2005, 22:08
    #33247197
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
ты код приведи как читаешь и описание структуры. Не у всех есть хрустальный шар
...
Рейтинг: 0 / 0
01.09.2005, 23:30
    #33247231
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
выключи выравние элементов структуры.
Код: plaintext
1.
2.
3.
4.
#pragma pack( 1 )
struct myStruct {
   ....
};
#pragma pack()
...
Рейтинг: 0 / 0
02.09.2005, 07:56
    #33247370
Yuragod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
Вот код:
struct blockread{
long rad:32;
int rad1:8;
char rad2[2];
};
main(){
ifstream inGrad("rabota.dat",ios::nocreate);
blockread bitread;
inGrad.read((char*)&bitread,7);
int a=0;
printf("%d",bitread.rad);
printf("%d",bitread.rad2);
while(a<=1){
printf("%02x",bitread.rad2[a]);
++a;
}
}
В dat файле следующий hex код записан 78 06 00 00 0B 01 B3
1)Нормально считывается rad,rad1 а вот char rad2 пишет ffffffcc ffffffcc???
2)Если же из структуры убрать rad,rad1 и оставить только rad2[7] то считывает так 78 06 00 00 0B 01 ffffffB3???
Надо чтобы работал 1) или 2)B3 без ffff!!Подскажите как сделать и так так!!!
...
Рейтинг: 0 / 0
02.09.2005, 09:39
    #33247541
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
Если я не ошибаюсь, то надо бы заменить char на unsigned char...
...
Рейтинг: 0 / 0
02.09.2005, 11:40
    #33247875
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
так так и пиши свою структуру:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
typedef int int4;
typedef signed char int1;

#pragma pack( 1 )
struct record
{
     int4 rad;
     int1 rad1;
     char rad2[ 2 ];
};
#pragma pack()

А с битами ты перемудрил. Вот ты указал int rad1: 8 и что ты ожидал, что он займет 8 бит?
...
Рейтинг: 0 / 0
02.09.2005, 21:39
    #33249506
Yuragod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
Анатолий Широковтак так и пиши свою структуру:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
typedef int int4;
typedef signed char int1;

#pragma pack( 1 )
struct record
{
     int4 rad;
     int1 rad1;
     char rad2[ 2 ];
};
#pragma pack()

А с битами ты перемудрил. Вот ты указал int rad1: 8 и что ты ожидал, что он займет 8 бит?
Вообще-то хотел считать 1байт(8бит) в int rad1!!!Проверил вроде работает нормально только может еще пожскажите чтобы не возиться по форматированию char может как нибудь можно от ffffffb3 в случае 2 избавиться! как я посмотрел в char считывается число -77 и потом printf и выдает результат выше так можно ли как нибудь сделать чтобы выдавал b3??7
Спасибо все кто помог и заранее спасибо всем кто поможет!!!
...
Рейтинг: 0 / 0
03.09.2005, 12:40
    #33249729
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
Простите, топик весь не прочитал. Но может есть смысл попробовать читать беззнаковый char? У меня похожий баян был как-то. unsigned спас.
...
Рейтинг: 0 / 0
03.09.2005, 12:43
    #33249731
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
А ещё я читал freadом. Но тогда прагму надо включить.
...
Рейтинг: 0 / 0
03.09.2005, 22:32
    #33250063
Yuragod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
unsigned подошел все работает всем спасибо!!Тему можно закрыть!!
...
Рейтинг: 0 / 0
05.09.2005, 10:33
    #33250918
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нужно считать из файла в структуру!!!
Читал бы ты лучше (и писал) всю структуру одним read (write) и не парился бы.
Или дисковой памяти жалко ? Чай не СУБД пишешь...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / нужно считать из файла в структуру!!! / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]