c++ - C++中的二进制文件

标签 c++ file qt binary

我想将以二进制模式打开的文件的所需字节到另一个所需字节的数据存储到另一个文件中。假设文件指针位于字节#10,现在我想从字节#11 读取数据到字节#30。我知道我必须使用 fread() 函数但不知道如何告诉该函数从所需位置读取到另一个所需的位置。我是初学者,所以请耐心回答这个问题。

我知道 fread() 是 C 函数,我需要 C++ 等效函数来完成这项工作。学习文件处理的书的链接或建议会很棒!

非常感谢您的帮助!

最佳答案

你必须寻求:

std::ifstream infile("source.bin", std::ios::binary);

infile.seekg(10, std::ios::beg);  // seek to 10 bytes from the beginning

char buf[20];

if (!infile.read(buf, 20)) { /* error */ }

// now your data is in buf

stdio 接口(interface)是相似的,但由于这是 C++,我们更喜欢 iostreams 接口(interface)。您绝不能在不检查其返回值的情况下使用 I/O 操作,在 iostream 中这很容易。对于 fread,您必须小心以正确解释返回值。

关于c++ - C++中的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854653/

相关文章:

c++ - Visual Studio C++ 控制台操纵杆

c++ - Win32 UI - 使控件随着父控件的扩展而扩展

c++ - 使用 C++ 读取、搜索和写入 XML

c++ - LeapMotion、Qt 和信号

python - 模拟用户在 QSystemTrayIcon 中单击

c++ - 我正在尝试让墙壁跟随机器人但是在我的范围内未声明的名称存在错误我需要帮助

c++ - Qt WebKit 和永久 Cookie

c# - 管理绝对路径和完整路径

Javascript - 使用 <script> 标签包含另一个脚本?

c++ - 文本文档中只有左边框