Я работал над фрагментом кода для некоторого сжатия и написал класс потока битов.
Мой класс потока битов отслеживал текущий бит, который мы читаем, и текущий байт (беззнаковый символ).
Я заметил, что чтение следующего неподписанного символа из файла происходило иначе, если я использовал метод >> operator vs get () в классе istream.
Мне было просто любопытно, почему я былполучить разные результаты?
ex:
this->m_inputFileStream.open(inputFile, std::ifstream::binary);
unsigned char currentByte;
this->m_inputFileStream >> currentByte;
против
this->m_inputFileStream.open(inputFile, std::ifstream::binary);
unsigned char currentByte;
this->m_inputFileStream.get((char&)currentByte);
Дополнительная информация:
Если быть точным, то байт, который я читал, был0x0A, однако, при использовании >> он будет читаться как 0x6F
Я не уверен, как они вообще связаны?(они не являются дополнением 2s друг к другу?)
Оператор >> также определен для работы и с неподписанным символом (см. справочник по классу istream c ++