Привет всем.
У меня возникли проблемы при работе с
файловыми потоками в режиме
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 и чем он отличается от простого
текстового режима?
Заранее спасибо.