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

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

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

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

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

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

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

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

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

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

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

Не работает код (программа считывает из файла строку, убирает лишние пробелы и записывает в другой файл строку, словами наоборот) C++
Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв C++
Программа не считывает пробелы C++

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

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

Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru