相关疑难解决方法(0)

读写二进制文件

我正在尝试编写代码将二进制文件读入缓冲区,然后将缓冲区写入另一个文件.我有以下代码,但缓冲区只存储文件中第一行的几个ASCII字符,没有别的.

int length;
char * buffer;

ifstream is;
is.open ("C:\\Final.gif", ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();

FILE *pFile;
pFile = fopen ("C:\\myfile.gif", "w");
fwrite (buffer , 1 , sizeof(buffer) , pFile );
Run Code Online (Sandbox Code Playgroud)

c++ binary buffer file

94
推荐指数
5
解决办法
24万
查看次数

使用 ifstream 从二进制文件一次读取 4 个字节

我有一个包含浮点数的二进制文件,因此每 4 个字节都是一个浮点数。我不确定如何以每四个字节存储为浮点数的方式读取,这样我就可以用它做任何我需要的事情。

这是我的代码:

int main()
{
    float i;
    std::ifstream inFile("bin_file", std::ios::binary);
    while (inFile >> i)
    {
        std::cout << i;
    }
    inFile.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它甚至不会进入 while 循环,除非我将 i 定义为字符。我猜这是因为它每次读取 1 个字节并且无法将其存储为浮点数。顺便说一句,我已经检查过并且文件打开了。

谢谢!

c++ binaryfiles filereader

0
推荐指数
1
解决办法
4328
查看次数

标签 统计

c++ ×2

binary ×1

binaryfiles ×1

buffer ×1

file ×1

filereader ×1