gpt4 book ai didi

c++ - 使用 c++ ios::ate 得到错误的文件大小

转载 作者:行者123 更新时间:2023-12-01 18:11:40 25 4
gpt4 key购买 nike

我正在尝试使用 C++ 获取文件的文件大小。代码是这样的:

 ifstream fin(filepth, ios::in | ios::binary | ios::ate);
if (!fin.is_open()) {
cout << "cannot open file:" << filepth << endl;
}
int len = fin.tellg();
fin.seekg(0, ios::beg);
fin.clear();
cout << "file length is: " << len << endl;
cout << "file length is: " << fs::file_size(fs::path(filepth)) << endl;

事实证明,ios::ate的方法得到了错误的结果。我错过了什么以及如何得到正确的结果?

最佳答案

我找到了问题的原因。我的文件大约有 9 GB 长,无法用 32 位 int 变量来表示。我使用了 int64_t 并且问题不再存在。

关于c++ - 使用 c++ ios::ate 得到错误的文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59450399/

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