gpt4 book ai didi

c++ - fstream::read 是如何推进文件偏移量的?

转载 作者:行者123 更新时间:2023-12-03 18:16:10 27 4
gpt4 key购买 nike

<分区>

#include <fstream>
#include <iostream>


int main(int argc, char * argv [])
{
std::ifstream f{ "test.syp" };
std::cout << f.tellg() << '\n';
char buffer[4];
f.read(buffer, 4);
std::cout << f.gcount() << '\n';
std::cout << f.tellg() << '\n';
}

当我执行上面的代码时,我得到以下输出:

0
4
20

如果我将 ifstream 更改为 fstream,除了最后一个数字是 21 之外,我得到相同的结果。

我希望在这两种情况下最后的数字都是 4。为什么不是呢?

编辑: 如果我用 std::ios::binary 打开文件,我会得到预期的结果;这一定是文本模式的怪癖

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