- C++14/C++1z 20
454 :デフォルトの名無しさん[sage]:2015/05/20(水) 23:47:34.73 ID:xjUyMT9v - ふと仕様をみていたらcopy_n()なんてアルゴリズムを見つけたので
これって、サイズ不明の巨大バイナリファイルをちまちま読み込むのに便利じゃない? と思ってループの中で使ってみたら、上手く動かなかった。なぜじゃ? 根本的に使い方を間違ってるのかなぁ? ループの2回目から1つ目のデータが残ってしまう??? std::ifstream ifs("src/main.cpp"); ifs.unsetf(std::ios::skipws); std::istream_iterator<char> is(ifs); const int bufsize=16; std::string str; while(ifs) { str.assign(""); str.reserve(bufsize); std::copy_n(is, bufsize, back_inserter(str)); std::cout << str << std::endl; }
|
|