圧縮を行うためにコードを作成していましたが、ビットストリームクラスを作成しました。C++ iostream >>演算子は、get()とは異なる動作をします。unsigned char
私のビットストリームクラスは、読み込み中の現在のビットと現在のバイト(符号なしchar)を追跡していました。
istreamクラスで>>演算子vs get()メソッドを使用した場合、ファイルから次の符号なし文字の読み込みが異なることに気付きました。
なぜ私は別の結果を得ているのか不思議でした。
例:
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としてそれを読んでいました
どのように関連性があるのかわかりません。 (彼らはお互いの補数じゃない?)>>演算子はまた、しかし同様にunsigned char型のために働くように定義されている
"differently"を定義してください –
はいくつかの詳細について質問を更新しました – Setheron