i/o в С++ двоичных файлов с использованием потоков

Тема в разделе "WASM.ZEN", создана пользователем _hidden_, 22 май 2005.

  1. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    извините за оффтопик, тут вопросик по c++



    как работать на c++ с двоичными файлами?

    << >> не работают это понятно, можно юзать ::read и ::write



    но я бы хотел заиметь такие функции например как



    char a = infile.getchar()

    word b = infile.getword()

    dword c = infile.getdword()



    проблема в том что я не могу добавить в класс ifstream ни одну функцию



    компиляторы ругаются



    покажите как нужно делать



    здесь word и dword это в моем случае short и int соответственно
     
  2. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Код (Text):
    1. #include <fstream>
    2. #include <iostream>
    3.  
    4. using namespace std;
    5.  
    6. int main ()
    7. {
    8.     char * filename = "foo";
    9.     {
    10.         ofstream f(filename, ios::binary | ios::trunc);
    11.         if( ! f )
    12.         {
    13.             cerr << endl << "Can't create output file `" << filename << "'.";
    14.             return ~0;
    15.         }
    16.         unsigned char c = 0;
    17.         do  f << c++;  while( c );
    18.     }
    19.     {
    20.         ifstream f(filename, ios::binary);
    21.         if( ! f )
    22.         {
    23.             cerr << endl << "Can't open file `" << filename << "' for reading.";
    24.             return ~0;
    25.         }
    26.         unsigned char c = 0;
    27.         do if( c++ != f.get() ) cerr << endl << "Data mismatch."; while( c );
    28.     }
    29.     return 0;
    30. }
    31.