![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 06.05.2008
Сообщений: 4
|
![]()
Всем привет!
Давайте рассмотрим фрагмент простой программы: using namespace std; fstream out("jkl.txt", ios_base:: out); out.put(63); out.put(10); out.put(79); out.close(); Теперь открываем файл "jkl.txt" шестнадцатиричным редактором. В нём мы видим следующее: 3F 0D 0A 4F 3F и 4F - это наши числа до и после десятки, но откуда взялись два байта посередине? Судя по всему, 10 - это спец-символ. И я убедился, что: out.put(10); даёт абсолютно такой же эффект, как и out << endl; Теперь мой вопрос: как это отключить? Мне нужно, чтобы результатом out.put(10); был байт с десяткой в выходном потоке. Спасибо за ваше внимание. |
![]() |
![]() |
![]() |
#2 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
![]()
дело в том, что медод put записывает в поток чар, а не инт.
пиши и читай так: Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 06.05.2008
Сообщений: 4
|
![]()
Спасибо. Я действительно забыл про флаг binary...
|
![]() |
![]() |
![]() |
#4 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
![]()
да дело и не во флаге бинари, ты просто записывал код чара по аски таблице символов, а думал что пишешь инт. я на самом деле fstream ом не пользуюсь, только FILE*, или винапишными средствами
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удвоить каждый символ строки, потом перевернуть строку | Didi | Помощь студентам | 6 | 20.05.2008 15:33 |
как присвоить char'у символ перевода строки? | Retiz | Помощь студентам | 6 | 06.04.2008 00:05 |
Макрос - до конца данных | jungo | Microsoft Office Excel | 6 | 08.02.2008 09:47 |
удаление текста с конца | Lonix | Общие вопросы Delphi | 7 | 12.07.2007 14:00 |