バイナリモードでファイルの読み込み
ロベールのC++入門講座 08-09
fstreamクラスを使ってのバイナリモードでファイルの読み込みをやってみます。
#include <iostream> #include <fstream> using std::cout; using std::endl; int main () { std::fstream file; char buf[16]; file.open("main.cpp",std::ios::in|std::ios::binary); if ( !file.is_open() ) { cout << "file open error" << endl; return EXIT_FAILURE; } while( !file.eof() ) { file.read(buf,sizeof(buf)); for(int i=0,size=file.gcount();i<size;++i) { cout << buf[i] << std::flush; } } file.close(); return 0; }
できました。readを使って16バイトずつ読み込んでいます。
またgcountというのは直前のreadで読み込みに成功したバイト数を返すのでそれを条件にループして表示させればうまくいきます。