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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DimyanW
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 15
#1

Не считываются пробелы из бинарного файла - C++

24.12.2013, 20:12. Просмотров 605. Ответов 7
Метки нет (Все метки)

Всем салют.
Завис на одной проблемке, может кто поможет?
При побайтовом считывании бинарного файла (для примера расширение .png), считываются все символы кроме пробелов!!! Как быть не знаю просто
P.S. при том же бинарном побайтовом чтении текстового файла пробелы нормально считываются.
считываю так:
C++
1
fread(&buf,sizeof(BYTE),1,file1);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 20:12     Не считываются пробелы из бинарного файла
Посмотрите здесь:
C++ Не считываются пробелы из файла
Не считываются данные из файла в объект C++
Неправильно считываются данные из wav-файла C++
C++ Создание бинарного дерево из бинарного файла
При чтении файла считываются невидимые символы C++
C++ условие: с файла по-байтно считываются символы (while (от первого до последнего символа))
При чтении из файла последние данные считываются дважды !? eof() ? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.12.2013, 20:15     Не считываются пробелы из бинарного файла #2
А откуда в бинарном файле вообще взялись символы?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 20:30     Не считываются пробелы из бинарного файла #3
Цитата Сообщение от DimyanW Посмотреть сообщение
При побайтовом считывании бинарного файла (для примера расширение .png), считываются все символы кроме пробелов!!!
Как это определили?
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
24.12.2013, 20:32     Не считываются пробелы из бинарного файла #4
Как открыл файл?
DimyanW
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 15
24.12.2013, 20:46  [ТС]     Не считываются пробелы из бинарного файла #5
FILE*file1=NULL;
file1=fopen("paint.png","rb")

Добавлено через 26 секунд
Цитата Сообщение от villu Посмотреть сообщение
Как открыл файл?
Цитата Сообщение от taras atavin Посмотреть сообщение
А откуда в бинарном файле вообще взялись символы?
блокнот тебе в помощь

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Как это определили?
под отладчиком прогонял (до этого открыл файл через блокнот) и как только в переменную buf должен заноситься пробел, в нее заносится NULL или прочий мусор, причем остальные символы он нормально считывает
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 20:56     Не считываются пробелы из бинарного файла #6
Цитата Сообщение от DimyanW Посмотреть сообщение
(до этого открыл файл через блокнот) и как только в переменную buf должен заноситься пробел
Т.е., байт со значением 32? И в отладчике видно это значение?

Добавлено через 2 минуты
Цитата Сообщение от DimyanW Посмотреть сообщение
блокнот тебе в помощь
Блокнот для таких дел не подходит. Он может показывать только коды символов (то, что имеет графическое отображение), другие значения он просто не покажет, и если блокнот что-то не показывает, то это не значит, что это обязательно пробел (код 32).

Добавлено через 4 минуты
Открывайте такие файлы (не текстовые) hex-редактором, чтобы увидеть, что там на самом деле в байтах.
DimyanW
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 15
24.12.2013, 20:57  [ТС]     Не считываются пробелы из бинарного файла #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Т.е., байт со значением 32? И в отладчике видно это значение?

Добавлено через 2 минуты

Блокнот для таких дел не подходит. Он может показывать только коды символов (то, что имеет графическое отображение), другие значения он просто не покажет, и если блокнот что-то не показывает, то это не значит, что это обязательно пробел (код 32).

Добавлено через 4 минуты
Открывайте такие файлы (не текстовые) hex-редактором, чтобы увидеть что там на самом деле.

просто все кроме пробелов он считывает точно также как и в блокноте.
дело в том, что я сжимаю входной файл (считываю его побайтово), после чего обратно разжимаю. И если сравнивать эти два файла открыв через блокнот, то они во всем сходятся за исключением отсутствия у рассжатого пробелов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 21:10     Не считываются пробелы из бинарного файла
Еще ссылки по теме:
Вычислить объем цилиндра. Исходные данные считываются программой из файла. Результат сохранить в файл C++
C++ Вычисление интергала, но входные данные сначала считываются из файла, а выходные наоборот в него записываются. Подскажите пожалуйста как это сделать
C++ Чтение из бинарного файла
Чтение бинарного файла C++
C++ Чтение бинарного файла

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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 21:10     Не считываются пробелы из бинарного файла #8
Цитата Сообщение от DimyanW Посмотреть сообщение
просто все кроме пробелов он считывает точно также как и в блокноте.
дело в том, что я сжимаю входной файл (считываю его побайтово), после чего обратно разжимаю. И если сравнивать эти два файла открыв через блокнот, то они во всем сходятся за исключением отсутствия у рассжатого пробелов
По поводу рассматривания в блокноте не текстовых файлов, я сказал всё, что мог. Дальше - дело ваше, можете продолжать.
Yandex
Объявления
24.12.2013, 21:10     Не считываются пробелы из бинарного файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru