побитовый вывод из файла
От: Alex Dav Россия  
Дата: 29.05.07 09:52
Оценка:
укажите ошибку, плиз, а то у меня все время одни нули

    ifstream* inFile = new ifstream();
    inFile->open("C:\\01.rr",ios::in|ios::binary);
    if(!inFile->is_open())
        cout  << "Error";
    else
    {
        bitset<8> bite;

        for (int j = 0; j < 100000; ++j)
        {
            *inFile >> bite;

            for(int i = 0; i <= 7; ++i)
                cout << bite[i];
            cout << endl;
        }
    }
Re: побитовый вывод из файла
От: codelord  
Дата: 29.05.07 10:26
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>укажите ошибку, плиз, а то у меня все время одни нули


AD>
AD>    ifstream* inFile = new ifstream();
AD>    inFile->open("C:\\01.rr",ios::in|ios::binary);
AD>    if(!inFile->is_open())
AD>        cout  << "Error";
AD>    else
AD>    {
AD>        bitset<8> bite;

AD>        for (int j = 0; j < 100000; ++j)
AD>        {
AD>            *inFile >> bite;

AD>            for(int i = 0; i <= 7; ++i)
AD>                cout << bite[i];
AD>            cout << endl;
AD>        }
AD>    }
AD>


Не пользуйся <<
для битового ввода вывода, используй read
write()
Re[2]: побитовый вывод из файла
От: Alex Dav Россия  
Дата: 29.05.07 10:50
Оценка:
Здравствуйте, codelord, Вы писали:


C>Не пользуйся <<

C>для битового ввода вывода, используй read
C>write()

а как?
Re: побитовый вывод из файла
От: Decoy Литва  
Дата: 29.05.07 11:55
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>укажите ошибку, плиз, а то у меня все время одни нули


Я бы порекомендовал пользоваться классом boost::dynamic_bitset<> для этих целей. Ну или посмотреть std::bitset (хотя насчет него не уверен)
Re: побитовый вывод из файла
От: Пётр Седов Россия  
Дата: 29.05.07 12:53
Оценка: 1 (1)
Здравствуйте, Alex Dav.
Странная тема – «побитовый вывод из файла». Скорее, всё-таки, побитовый ввод из файла?
Я бы сделал так:
#include <assert.h>
#include <stdio.h>

void ProcessFile(const char pFilePath[])
{
  FILE* pFile = fopen(pFilePath, "rb");
  if (pFile == NULL)
  {
    printf("Cannot open file '%s'.\n", pFilePath);
    return;
  }
  for (int i = 0; i < 100000; i++)
  {
    // прочитать байт
    int n = fgetc(pFile);
    if (n == EOF)
    {
      // конец файла или ошибка
      break;
    }
    assert((0 <= n) && (n <= 255));
    // распаковать байт
    int b0 = n & 0x1;
    n >>= 1;
    int b1 = n & 0x1;
    n >>= 1;
    int b2 = n & 0x1;
    n >>= 1;
    int b3 = n & 0x1;
    n >>= 1;
    int b4 = n & 0x1;
    n >>= 1;
    int b5 = n & 0x1;
    n >>= 1;
    int b6 = n & 0x1;
    n >>= 1;
    int b7 = n & 0x1;
    n >>= 1;
    assert(n == 0);
    printf("%i%i%i%i%i%i%i%i\n", b7, b6, b5, b4, b3, b2, b1, b0);
  }
  fclose(pFile);
}
Пётр Седов (ушёл с RSDN)
Re[2]: побитовый вывод из файла
От: Alex Dav Россия  
Дата: 29.05.07 12:56
Оценка:
Здравствуйте, Пётр Седов, Вы писали:

ПС>Здравствуйте, Alex Dav.

ПС>Странная тема – «побитовый вывод из файла». Скорее, всё-таки, побитовый ввод из файла?
ПС>Я бы сделал так:

Спасибо. Вывод потому что я же потом вывожу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.