STL:потоки
От: Гомон Игорь Викторович Украина  
Дата: 08.05.02 06:23
Оценка:
Привет всем.
У меня возникли проблемы при работе с файловыми потоками в режиме ios_base::binary;
Например, такой вариант:

#include "stdafx.h"
#include <fstream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    ofstream of("c:\\test.bak", ios_base::binary | ios_base::out | ios_base::trunc);
    if(of)
    {
        of << 1L << 0L;
        of.close();
    }

    ifstream _if("c:\\test.bak", ios_base::binary | ios_base::in);
    if(_if)
    {
        long  first, second;

        _if >> first >> second; //получаю first = 10, second - бред;
        _if.close();
    }

    return 0;
}


Так вот проблема в том, что я хочу чтобы при записи в поток числа 1 и 0 записывались именно как два числа типа long, т.е. по четыре байта, а они записываются как текст. (Я открывал файл Notepadom и смотрел там "10"). Как мне записать их в поток правильно, чтобы я мог их считать? Зачем же тогда режим ios_base::binary и чем он отличается от простого текстового режима?
Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.