![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| s0nik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Вывожу через stdout бинарный файл (изображение), всё нормально, но при выводе в поток вставляется символ 0x0D (вроде перевод каретки).
Как от него избавится?
Это сообщение отредактировал(а) s0nik - 22.10.2008, 19:29 |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Я запустил твою программу. Никакого символа 0xD не обнаружил. Единственно, что почему то дублируется последний символ. Почему я пока не понял.
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
попробуйте setmode(fileno(stdout), O_BINARY); хотя с виндой нельзя быть уверенным что сработает Добавлено через 1 минуту и 6 секунд это наверное потому, что вы ее на *nix'ах запустили |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Про дубляж символа понял, а вот про 0xD нет. Просветите меня, в каком месте он должен появиться.
J0ker , у меня XP. Это сообщение отредактировал(а) ИванМ - 22.10.2008, 21:16 |
|||
|
||||
| s0nik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Спасибо за помощь. setmode работает (а почему собственно не должно было работать в винде?)
Нашёл, где конкретно появляется символ 0x0D - всегда перед символом 0x0А.
|
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Понятно. Просто у меня не было символа 10.
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
потому, что в винде файловые потоки и консольные потоки не равноправны насколько мне помнится... для текстовых потоков символ конца строки в винде транслируется из \n в \r\n для вывода и наоборот для ввода |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |