「STLでファイルコピー」の編集履歴(バックアップ)一覧はこちら

STLでファイルコピー」(2007/01/22 (月) 15:59:03) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

* STLでファイルコピー #include <string> #include <fstream> #include <iterator> #include <algorithm> #include <iostream> using namespace std; void copy( const string &in, const string &out ) { ifstream ifs( in.c_str(), ios::binary ); ofstream ofs( out.c_str(), ios::binary ); copy( istreambuf_iterator<char>( ifs ), istreambuf_iterator<char>(), std::ostream_iterator<char>( ofs ) ); } int main() { copy( "A.dat", "B.dat" ); return 0; } istream_iterator<T>は、operator >> でTを読むため、streamからcharを読み出すとき、 バイナリであろうとなかろうと空白文字(空白/タブ/改行etc)を読み飛ばす。 従って、バイナリで読み込みたい場合はistreambuf_iteratorを使う。 ※試しに書いてみたらめっさ遅いのでたぶん使えない。 ファイルサイズが小さく、かつ簡潔にかきたいときだけ。
istream_iterator<T>は、operator >> でTを読むため、streamからcharを読み出すとき、 バイナリであろうとなかろうと空白文字(空白/タブ/改行etc)を読み飛ばす。 従って、バイナリで読み込みたい場合はistreambuf_iteratorを使う。 #include <string> #include <fstream> #include <iterator> #include <algorithm> #include <iostream> using namespace std; void copy( const string &in, const string &out ) { ifstream ifs( in.c_str(), ios::binary ); ofstream ofs( out.c_str(), ios::binary ); copy( istreambuf_iterator<char>( ifs ), istreambuf_iterator<char>(), std::ostream_iterator<char>( ofs ) ); } int main() { copy( "A.dat", "B.dat" ); return 0; } ※試しに書いてみたらめっさ遅いのでたぶん使えない。 ファイルサイズが小さく、かつ簡潔にかきたいときだけ。

表示オプション

横に並べて表示:
変化行の前後のみ表示: