バイナリファイルを読み出して書き出すという単純なプログラムを製作しているのですが
なぜか特定のバイトを読み飛ばして出力してしまうのです。
いかにソースを書きます(Borland C++ Builderにてコンパイル)

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;


void main(){
ifstream in("bb.swf");
ofstream out("out.txt");

char c;int index = 0;
while(in >> c){
if(index == 16){out << endl;index = 0;}
index ++;

stringstream dusts;
dusts << hex;
dusts.width(2);
dusts << static_cast<int>(static_cast<unsigned char>(c)) << " ";
out << dusts.str() ;
}
in.close();

}

そのような仕様でもあるのでしょうか