读取.raw C++文件

Reading .raw file in C++

本文关键字:文件 C++ raw 读取      更新时间:2023-10-16

我一般是C++新手,因此也是C++文件处理新手。

我需要读取一个具有16-bit integers.raw文件,并且具有维度512 x 512

为此,我使用以下代码:

ifstream myData("myData.raw");
short value;                                             
int i = 0;
char buf[sizeof(short)];
while (myData.read(buf,sizeof(buf)))
{
    memcpy(&value, buf, sizeof(value));
    cout << value << " ";
    i++;
}
cout << endl << "Total count: " << i << endl; 

我为i获得的价值不是512 x 512.所以我想有些地方不对劲。

有人可以在这方面帮助我吗?

默认的打开模式是"文本",某些字符可能会被删除或被视为文件末尾。 ios::binary停止这些更改。

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    ifstream myData("myData.raw", ios::binary);
    short value;
    int i = 0;
    char buf[sizeof(short)];
    while (myData.read(buf, sizeof(buf)))
    {
        memcpy(&value, buf, sizeof(value));
        cout << value << " ";
        i++;
    }
    cout << endl << "Total count: " << i << endl;
}