gpt4 book ai didi

c++ - std::ifstream::read 或 std::ofstream::write 参数为零?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:51 27 4
gpt4 key购买 nike

是否完全可以(= 根据标准定义明确的行为)调用:

mystream.read(buffer, 0);

mystream.write(buffer, 0);

(当然不会读取或写入任何内容)。我想知道在调用这两个函数之一之前是否必须测试提供的大小是否为空。

最佳答案

是的,行为是明确定义的:两个函数都将完成未格式化输入/输出函数的 Action (构造哨兵,如果设置了 eofbit 则设置 failbit,必要时刷新绑定(bind)流),然后它们将得到对此条款:

§27.7.2.3[istream.unformatted]/30

Characters are extracted and stored until either of the following occurs:

— n characters are stored;

§27.7.3.7[ostream.unformatted]/5

Characters are inserted until either of the following occurs

— n characters are inserted;

在存储或提取任何内容之前,“存储/插入零个字符”为真。

查看实际实现,我看到 for (; gcount < n; ++gcount) in libc++sgetn(buffer, n); in stdlibc++其中有 equivalent loop

关于c++ - std::ifstream::read 或 std::ofstream::write 参数为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014192/

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