![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
в общем. ни как не могу прочитать в файле байты 0x00
типа это указывает что это конец файла. а мне нужно их прочесть и поместить в буфер подскажи плиз как, с помощью стандартный функций прочитать такие символы как 0x00 и подобные. заранее благодарю. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
||||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
недолжно. как ты проверяешь конец файла? |
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
я вам реально говорю. не читает !!! короче есть 8 байт в файле, такого вида
0xE2 0x03 0x00 0x00 0x00 0x58 0x48 0x4D первый два байта читаются функциями любыми библиотеки stdio fread(); fgets(); fgetc(); и тп. остальные байты т.е. 0x00 не читаются, и указатель не уходит дальше них. а нада считать все имеющиееся байты включая эти нули 0x00. все 8 байтов. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
tht, приведи код как ты читаешь из файл, а то так сложно что-то говорить..
|
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
вы дает 2 байта прочитаных. и соотвественно выводит только этих два байта которые первые в файле. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
tht, ты записываешь данные в null-terminated строку. т.е. в список символов, концом которого(концом строки, а не файла!) считается символ с кодом 0. т.е. ты реально читаешь 8 байт. но помещаешь в структуру, из которой сможешь вытянуть только символы до первого кода ноль.
|
|||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
и что мне с этим можно сделать ? Vyacheslav спасибо. учту, но мне еще интересен другой вариант. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
подумай, тут уже дело в обработке строки, а вообще можешь читать попеременно в переменную типа int и сразу выводить на экран |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
||||
|
||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
они там в файле 0x00 хоть как будут и должны быть. считайте что это протокол такой. которые изменить нельзя.
|
|||
|
||||
| SerpentVV |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 27.11.2006 Где: Астрахань Репутация: 1 Всего: 1 |
1. По умолчанию ты открываешь файл как текстовый... Нужно прописать в fopen "rb" 2. Функция strlen тебе до первого нуля и посчитает... 3. Выводишь ты их как строку - опять же выведется до нуля... Добавлено @ 17:18
Тогда нельзя работать со строковыми функциями ибо они все до ближайшего нуля работают... |
||||||
|
|||||||
| tht |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
ничего не получается. я пробывал всяко как вы говорили я даже буфер сделал int rcvBuff[10];
видите ? целый... все равно чтение только первых двух байтов. короче говоря не читает функция fread все 8 байтов, а только до нуля. в то время как printf() способна вывести любые байты на экран. Это сообщение отредактировал(а) tht - 7.2.2007, 18:12 |
|||
|
||||
| SerpentVV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 27.11.2006 Где: Астрахань Репутация: 1 Всего: 1 |
Короче, приведи полный текст с объявлениями переменных и попытками вывода на экран...
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |