//Streams were originally designed for text, so the default
//output mode is text.
//In text mode, the newline character
//(hexadecimal 10) expands
//to a carriage return–linefeed (16-bit only).
//The expansion can cause problems, as shown here:
// binary_output_files.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int iarray[2] = { 99, 10 };
int main( )
{
ofstream os( "test.dat" );
os.write( (char *) iarray, sizeof( iarray ) );
}
//You might expect this program to output the byte sequence
//{ 99, 0, 10, 0 };
//instead, it outputs { 99, 0, 13, 10, 0 },which causes
//problems for a program expecting binary input.
//If you need true binary output, in which characters are
//written untranslated, you could specify binary output by
//using the ofstream constructor mode argument:
// binary_output_files2.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int iarray[2] = { 99, 10 };
int main()
{
ofstream ofs ( "test.dat", ios_base::binary );
// Exactly 8 bytes written
ofs.write( (char*)&iarray[0], sizeof(int)*2 );
}
See Also
Output Streams
бинарные файлы
...
ofstream file(filename,ios_base::binary);
file<<1.5f<<2;
file.close();
...
Результирующий файл:
1.52
Размер 4 байта вместо 8
Как правильно организовать запись двоичных данных в файл?
rtfm msdn:
Это я прочитал в MSDN, а как это реализовать с помощью оператора <<
Цитата:
Originally posted by lexus
Это я прочитал в MSDN, а как это реализовать с помощью оператора <<
Это я прочитал в MSDN, а как это реализовать с помощью оператора <<
lexusну чего ты в самом деле? Написано ж Streams were originally designed for text.
Юзай CreateFile(), _open(), fopen().
Ну если уж приперло через потоки - то создай клас наследник от ofstream'a и в нем уже с помощью CreateFile/WriteFile реализуй оператор <<.
Выводит
e:\универ\4 семестр\дискретка\third\mainfrm.cpp(85) : error C2143: syntax error : missing ';' before '.'
Цитата:
Originally posted by Alexandoros
lexusну чего ты в самом деле? Написано ж Streams were originally designed for text.
Юзай CreateFile(), _open(), fopen().
Ну если уж приперло через потоки - то создай клас наследник от ofstream'a и в нем уже с помощью CreateFile/WriteFile реализуй оператор <<.
lexusну чего ты в самом деле? Написано ж Streams were originally designed for text.
Юзай CreateFile(), _open(), fopen().
Ну если уж приперло через потоки - то создай клас наследник от ofstream'a и в нем уже с помощью CreateFile/WriteFile реализуй оператор <<.
ОК.Я так и думал.Я просто перегрузил операции << и >> в своем классе, хотел сделать через них