powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / нужно считать из файла в структуру!!!
11 сообщений из 11, страница 1 из 1
нужно считать из файла в структуру!!!
    #33247169
Yuragod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите как можно из файла считать в структуру (в которой переменные int long char причем с битовыми полями) по байту!!Я стал делать так у меня некоторые байты не хотят лезти в char(пишут пустые значения) и еще некоторые в char считываются:вместо b3 пишет ffffffb3(в чем проблема???)!помогите!!
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #33247197
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты код приведи как читаешь и описание структуры. Не у всех есть хрустальный шар
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #33247231
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выключи выравние элементов структуры.
Код: plaintext
1.
2.
3.
4.
#pragma pack( 1 )
struct myStruct {
   ....
};
#pragma pack()
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #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
нужно считать из файла в структуру!!!
    #33247541
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я не ошибаюсь, то надо бы заменить char на unsigned char...
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #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
нужно считать из файла в структуру!!!
    #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
нужно считать из файла в структуру!!!
    #33249729
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, топик весь не прочитал. Но может есть смысл попробовать читать беззнаковый char? У меня похожий баян был как-то. unsigned спас.
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #33249731
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё я читал freadом. Но тогда прагму надо включить.
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #33250063
Yuragod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
unsigned подошел все работает всем спасибо!!Тему можно закрыть!!
...
Рейтинг: 0 / 0
нужно считать из файла в структуру!!!
    #33250918
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал бы ты лучше (и писал) всю структуру одним read (write) и не парился бы.
Или дисковой памяти жалко ? Чай не СУБД пишешь...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / нужно считать из файла в структуру!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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