int main()
{
std::vector<std::string> vs, vs2;

vs.push_back("abcde");
vs.push_back("fghij");
vs.push_back("klmno");

std::ofstream ofs("test.txt");
std::copy(vs.begin(), vs.end(), std::ostream_iterator<std::string>(ofs, "\n"));
ofs.close();

std::ifstream ifs("test.txt");

std::copy(std::istream_iterator<std::string, char>(ifs), std::istream_iterator<std::string, char>(), std::back_inserter(vs2));
std::copy(vs2.begin(), vs2.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}

これでもあまり美しくないなあ
pstreambuf_iterator<char>とc_str()を使えばコンパイラ側から見て一回の入出力に見えるんだけど
文字単位なので効率悪いし