入力ストリームに 10 個の値が含まれていることが確実にわかっている場合は、次のコマンドで読み取ることができます。
std::copy_n(std::istream_iterator<T>(input), 10, output);
自分が持っている値の量がわからない場合は、すべてを読み取ることができます
std::copy(std::istream_iterator<T>(input), std::istream_iterator<T>(), output);
私の問題は、最大10 個の値を読み取る方法です。ここでは I/O エラーに対して堅牢にしようとしていますcopy_n
が、入力の最後を超えて読み取ろうとし (停止する必要があることを認識していません)、copy
10 個の値で停止しないようです。自分で巻く必要がありcopy_at_most
ますか?
(まあ、とにかく copy_n について混乱があるようです: std::istream_iterator<> with copy_n() とその友達)