简单的 C++ 二进制文件读取
simple c++ binary file reading
>我有一个由一些 fortran 代码创建的二进制文件。我想编写一个 c++ 代码来读取这个二进制文件,然后通过 std::cout 将其吐出。到目前为止,这是我的代码:
#include<fstream>
#include<iostream>
using namespace std;
int main(){
ifstream file("tofu.txt", ios::binary | ios::in | ios::ate);
ifstream::pos_type size;
if(file.is_open()){
size = file.tellg();
cout << "size = " << size << 'n';
file.seekg(0);
char bar[500];
file.read((char*) (&bar), size);
file.close();
string foo(bar);
cout << "foo = " << foo << 'n';
}
else cout << "Unable to open file";
return 0;
}
但是,在编译和运行时,代码没有给我任何东西:
size = 250
foo =
有人可以告诉我我在代码中哪里做错了?谢谢!
您忘记终止 char 数组,导致未定义的行为。像这样修复它:
char bar[500];
assert(size < 500);
file.read((char*) (&bar), size - 1);
bar[size] = ' ';
(确保检查size
是否也不超过您的空间!
相关文章:
- 正在读取二进制文件(is_open)
- 读取二进制文件并解释为整数
- 读取二进制文件直到结束 c++
- 如何在标准c ++中流式传输/读取二进制文件的中间部分并写入另一个文件?
- 读取二进制文件的惯用C++17标准方法是什么
- 从末尾读取二进制文件
- C++逐个字符读取二进制文件字符
- 读取二进制文件大小的短自上周以来停止工作
- 读取二进制文件时出现问题
- 读取二进制文件时如何输出?
- C++:如何在线程中读取二进制文件并将其写入另一个线程?
- 在C 中读取二进制文件会返回意外值
- 尝试读取二进制文件会清除文件本身
- C 读取二进制文件
- 通过C 读取二进制文件的问题
- ifstream读取二进制文件在发行模式下工作,但在调试模式下不使用
- 分段 追加和读取二进制文件时出错
- 使用C++中的MsgPack读取二进制文件
- 有没有一种优雅的方法来读取二进制文件并将其内容复制到向量<int>
- 如何读取二进制文件并在屏幕上打印 3?