// バイナリファイルの入出力 // バッファを介して読み書きを行います //-------------------------------------------------------------------- // Name // stream03.cpp // // Description // 指定サイズ単位にファイルコピーを行います // #include <iostream> #include <fstream> using namespace std; int main( int argc, char *argv[] ) { if ( argc != 3 ) { cout << "usage: stream03 input_file output_file" << endl; return 1; } ifstream in( argv[1] , ios::in | ios::binary ); // 入力ストリーム if ( !in ) { cout << "can't open file " << argv[1] << endl; return 1; } ofstream out( argv[2], ios::out | ios::binary );// 出力ストリーム if ( !out ) { cout << "can't open file " << argv[2] << endl; return 1; } const streamsize ssize = 1024; char cBuff[ssize]; do { in.read( cBuff, ssize ); streamsize read_size = in.gcount(); if ( read_size == 0 ) break; out.write( cBuff, read_size ); } while ( !in.eof() ); // クローズ in.close( ); out.close( ); return 0; } // // バイナリモードを使用する時は、ファイルオープン時に // openmode の ios::binary を指定します。 // gcount() は実際に読み込んだバイト数を返します //