小编Igo*_*kov的帖子

C++ 将 N 个字节从一个流复制到另一个流

给ifstream定源和ofstream目标,从streampos(offset)源开始复制 N 个字节的最快方法是什么?

编辑

我想到的最简单的方法是使用一个简单的缓冲区:

char *buf = new char[N];
is.seekg(offset);
is.read(buf, N);
os.write(buf, N);
delete buf;
Run Code Online (Sandbox Code Playgroud)

或更小的固定大小的缓冲区:

char buf[BUF_SIZE];
is.seekg(offset);
while (N > 0) {
    int n = min(BUF_SIZE, N);
    is.read(buf, n);
    os.write(buf, n);
    N -= n;
}
Run Code Online (Sandbox Code Playgroud)

我想知道还有什么比这更快或更有效的方法。

c++ io fstream

5
推荐指数
1
解决办法
4657
查看次数

标签 统计

c++ ×1

fstream ×1

io ×1