【问题标题】:split ifstream on two ofstreams在两个 ofstreams 上拆分 ifstream
【发布时间】:2015-03-25 16:55:06
【问题描述】:

有一个文件(ifstream), 我必须将其拆分为两个输出文件(ofstreams),使用参数作为每个文件的字符数:

例如num_of_char = 3

在:abcdefghijk

out1:abcghi

out2:defjk

什么是最有效的方法? (我想我必须使用 (ifstream).width(num_of_char); ) 有没有类似的东西: 输出1

【问题讨论】:

  • out1 << in.rdbuf();,但它只会将in的所有内容转储到out1,你不能限制这种方式复制的字节数。最重要的是,我没有看到比“从in 读取N 字节到内存中,将它们写入out1,读取N 更多字节,将它们写入out2,泡沫,冲洗,重复”。

标签: c++ stl iostream


【解决方案1】:

这是我目前的解决方案, 顺便说一句 - 是否有一元布尔值翻转操作以避免循环中的第三行?

...
std::string s;
bool flag = true;
while (!is.eof()) {
    is >> std::setw(num_of_char ) >> s;
    (flag ? out1 : out2) << s;
    flag = !flag;
}
....

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多