gpt4 book ai didi

c++ - ifstream::readsome 问题。缓冲区超出

转载 作者:行者123 更新时间:2023-11-30 01:22:48 25 4
gpt4 key购买 nike

我调查了如果缓冲区中没有足够的空间,方法 ifstream::readsome(buf, size) 不会读取所有字节。示例:

我有缓冲区:4096 字节。从文件开始的偏移量:6 字节。我调用 ifstream::readsome(buf, 4097)

函数的结果是 4090。所以如果我想读取剩余的七个字节,我必须调用

ifstream::readsome(buf + 4090, 7)

问题是:为什么要这样实现这个功能?我没有看到任何处理缓冲区超出方法 ifstream::readsome(buf, size) 的问题。

编译器:MSVC 11(VS 2012)

感谢您的回答。

最佳答案

因为那是readsome的意思。它调用streambuf 上的任何虚函数(可能堵塞);它被定义为返回当前的字符在缓冲区中。

如果你需要更多,那么你应该使用read

关于c++ - ifstream::readsome 问题。缓冲区超出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15784540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com