首页 > 解决方案 > 如何在文件uchar中输出?

问题描述

我有unsigned char[128] = {0xFF, 0xBE,...0x99} 的数组;. 并需要将其输出到.txt.bin文件。但是我尝试过的所有功能都只能与const char*一起使用。那么,我应该使用什么来输出 uchar[]?

我试过 fstream 和 QFile。

                             //  1     2     3     4     5     6     7     8     9     10    11    12    13    14    15    16
static uchar headerFile[128] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //1
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //2
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //3
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //4
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //5
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //6
                                0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,   //7
                                0xFF, 0xFF, 0x47, 0x01, 0x84, 0x75, 0x00, 0x00, 0x39, 0xC2, 0x3A, 0xBE, 0xC3, 0x72, 0xC4, 0x71,}; //8

int main()
{
    QFile out("D:/DataOutput.bin");
    if( out.open( QIODevice::WriteOnly ) ) {
            out.write(&headerFile[0],128);
    }
}

UPD:删除循环。

标签: c++qt

解决方案


这应该有效:

if (out.open(QIODevice::WriteOnly)) {
    out.write(reinterpret_cast<const char*>(&headerFile[0]), 128);
}

推荐阅读