Вопрос № 127940: Здравствуйте уважаемые эксперты я столкнулся с проблемой при чтении структуры наприер байты 000000a0 читаются как a0000000 как это изменить ?? Через char не хочется а и не красиво это будет.Операционка mandriva linux 2008 комплятор gcc 4.2.2 сам код...Вопрос № 128036: Есть такая задача: написать программу построения графика функции по точкам. Координаты точек - Х и У - находятся в файле и считываются оттуда. Желательно
на С++ - то есть в оконном режиме, а не под ДОС. Помогите пожалуйста, буду очень признательна. Е...
Вопрос № 127.940
Здравствуйте уважаемые эксперты я столкнулся с проблемой при чтении структуры наприер байты 000000a0 читаются как a0000000 как это изменить ?? Через char не хочется а и не красиво это будет.Операционка mandriva linux 2008 комплятор gcc 4.2.2 сам код
Отвечает: Хватов Сергей
Здравствуйте, Kuliev abakar yakhyaevich!
Эта проблема - byte order. У половины архитектур в первый байт записывается младшая часть целого, у второй - старший. Эти варианты называются little endian и big endian (сами эти термины позаимствованы из "Путешествий Гулливера" Свифта и в русском переводе это "остроконечники" и "тупоконечники", что в общем отражает суть и последствия этой проблемы)
У Intel - little endian (младший байт первый). Как я вижу, вы пытаетесь разобрать стандартный формат mp3. Похоже, там big endian.
Вам придётся написать макросы или inline функции для преобразования порядка байт полей при чтении или записи (а строго говоря - ещё проверять свой порядок байт)
Про вторые грабли, связанные с работой с упакованными структурами, рассказывать не буду - на intel-ях их нет.
Подходящий заголовочный файл - в приложении.
Приложение:
Ответ отправил: Хватов Сергей (статус: Практикант)
Ответ отправлен: 18.03.2008, 14:27 Оценка за ответ: 5 Комментарий оценки: Исчерпываюший ответ спасибо
Отвечает: kool
Здравствуйте, Kuliev abakar yakhyaevich!
Читайте не как char, а как структуру
Ex.
ifs.read((MP3head*)&head,1);
другие аналогично.
Удачи!
--------- I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 18.03.2008, 16:58 Оценка за ответ: 3
Вопрос № 128.036
Есть такая задача: написать программу построения графика функции по точкам. Координаты точек - Х и У - находятся в файле и считываются оттуда. Желательно на С++ - то есть в оконном режиме, а не под ДОС. Помогите пожалуйста, буду очень признательна. Если есть у кого готовая любая программа построения графиков в оконном режиме(исходники) - пожалуйста поделитесь!
Спасибо
Отправлен: 19.03.2008, 02:10
Вопрос задала: Bliznec77 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Попов А.С.
Здравствуйте, Bliznec77!
Решение в приложении
файл с координатами ("in.txt") должен находиться в той же директории что и exeшник програмы
структрура файла "in.txt"
[координата Х1] [пробел] [координата Y1] ['
']
.......
[координата ХN] [пробел] [координата YN] ['
']
[пустая строка в конце]
Приложение:
Ответ отправил: Попов А.С. (статус: Студент)
Ответ отправлен: 19.03.2008, 14:04 Оценка за ответ: 5