Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неформатируемый двоичный ввод/вывод, Не пишется в двоичном виде 
V
    Опции темы
FiMa1
Дата 1.8.2007, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Всем привет!
Приведенная ниже программа должна (по Шилдту) "записывать в файл в двоичном виде введенные пользователем символы до ввода знака $". Почему пишет в файл в текстовом виде..?
Код
int main()
{
    ofstream out("bin", ios::out | ios::binary );
    if ( ! out ) {
        cout << "Unable to open the file\n";
        return 1;
    }
    
    cout << "To stop input $ char\n";

    char ch;
    do {
        cout << ": ";
        cin.get(ch);
        out.put(ch);
    } while ( ch != '$');
    out.close();
    
    return 0;
}

PM   Вверх
korbian
Дата 1.8.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 336
Регистрация: 20.2.2007
Где: Penza

Репутация: 2
Всего: 14



все нормально, пишет в бинарном виде.


--------------------
korbian ©
PM   Вверх
bsa
Дата 1.8.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



А чем по-твоему отличается бинарный от текстового?
hint: собери под windows или DOS и введи не менее двух строк (т.е. знак $ введи на второй или третьей строке). Затем открой блокнотом (notepad.exe)

Это сообщение отредактировал(а) bsa - 1.8.2007, 13:32
PM   Вверх
FiMa1
Дата 1.8.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



 smile  bsa, korbian, спасибо! Я почему-то думал что двоичный неформатируемый вид - это не только потеря информации о форматировании.. 
PM   Вверх
bsa
Дата 1.8.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



нет. понятие "двоичный" актуально только для Windows (и DOS), так как у них конец строки состоит из символов '\r' и '\n'. А в UNIX только '\n'. Поэтому в текстовом режиме происходит преобразование перед записью, а в бинарном нет.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.