当前位置: 首页 > 面试题库 >

C ++:获取不正确的文件大小

陆阳曜
2023-03-14
问题内容

我正在使用Linux和C ++。我有一个大小为210732字节的二进制文件,但是seekg / tellg报告的大小为210728。

我从ls-la获得以下信息,即210732字节:

-rw-rw-r– 1个pjs pjs 210732 2月17日10:25 output.osr

并使用以下代码段,我得到210728:

std::ifstream handle;
handle.open("output.osr", std::ios::binary | std::ios::in);
handle.seekg(0, std::ios::end);
std::cout << "file size:" << static_cast<unsigned int>(handle.tellg()) << std::endl;

所以我的代码关闭了4个字节。我已经确认使用十六进制编辑器可以正确处理文件大小。那么,为什么我没有得到正确的尺寸?

我的回答:我认为问题是由文件中有多个打开的fstream引起的。 至少这似乎已经为我解决了。感谢所有提供帮助的人。


问题答案:

至少对于在64位CentOS 5上使用G ++ 4.1和4.4的用户而言,以下代码可以按预期工作,即,程序输出的长度与stat()调用返回的长度相同。

#include <iostream>
#include <fhtml" target="_blank">stream>
using namespace std;

int main () {
  int length;

  ifstream is;
  is.open ("test.txt", ios::binary | std::ios::in);

  // get length of file:
  is.seekg (0, ios::end);
  length = is.tellg();
  is.seekg (0, ios::beg);

  cout << "Length: " << length << "\nThe following should be zero: " 
       << is.tellg() << "\n";

  return 0;
}


 类似资料:
  • 本文向大家介绍如何在C#中获取文件大小?,包括了如何在C#中获取文件大小?的使用技巧和注意事项,需要的朋友参考一下 FileInfo类用于处理文件及其在C#中的操作。 它提供了用于创建,删除和读取文件的属性和方法。它使用StreamWriter类将数据写入文件。它是System.IO命名空间的一部分。 Directory属性检索代表文件父目录的对象。 DirectoryName属性检索文件的父目录

  • 本文向大家介绍web.py获取上传文件名的正确方法,包括了web.py获取上传文件名的正确方法的使用技巧和注意事项,需要的朋友参考一下 直接切入主题,从HTML页面上传文件,Python接收处理。但其中发现有些小问题,把它写出来,算是积累吧! HTML页面代码: Python处理部分代码: 执行结果切提示: 提示这个对象没有找到filename这个属性,一开始以为是接收对象错了,于是我直接 结果能

  • 这是我的angular2代码。 模板 组件 问题是每次加载的打印值都不一样。我猜这个问题是由于浏览器没有完成加载div。你知道这个的解决办法是什么吗?

  • 问题内容: 如何在Java中检索文件夹或文件的大小? 问题答案: 如果文件不存在,则以字节为单位返回文件的长度。没有内置的方法来获取文件夹的大小,你将不得不递归遍历目录树(使用代表目录的文件对象的方法)并为自己积累目录大小: 警告:此方法不足以用于生产。可能返回并导致。另外,它不考虑符号链接,并且可能具有其他故障模式。

  • 我正在尝试安装Weblogic 12c。 我将Weblogic jar文件放在我的C驱动器中。 为了编译和运行jar文件,我键入以下命令 我已经保证过了 1)命令提示符在管理模式下运行 2) 环境变量JAVA\U HOME=C:\Program Files\JAVA\jdk1.7.0\U 79 但是,我得到以下错误 安装程序似乎正在读取C:\Program Files\Java\jre7,而不是C

  • 本文向大家介绍C#获取文件夹及文件的大小与占用空间的方法,包括了C#获取文件夹及文件的大小与占用空间的方法的使用技巧和注意事项,需要的朋友参考一下 本文详细介绍了利用C#实现根据路径,计算这个路径所占用的磁盘空间的方法 。 网上有很多资料都是获取文件夹/文件的大小的。对于占用空间的很少有完整的代码。这里介绍实现这一功能的完整代码,供大家参考一下。 首先说下文件夹/文件大小与占用空间的区别。 这个是