如何从文件中读取十六进制并将其存储在无符号字符中

How to read hex from a file and store it in an unsigned char?

本文关键字:存储 字符 无符号 十六进制 文件 读取      更新时间:2023-10-16

文件包含字符'0'、'x'、'5'、'1'和一个新行。

QFile file ("config.txt");
QString fileContent;
if (file.open (QIODevice::ReadOnly))
{
    QString line;
    QTextStream t(&file);
    do
    {
        line = t.readLine();
        fileContent += line;
    } while (!line.isNull());
    file.close();
}
unsigned char m_pduAddress = fileContent.toUInt (0, 16);

如何从文件中读取十六进制并将其存储在无符号字符中?

我听说过的所有十进制到十六进制的转换函数都使用char*。我必须将结果存储在无符号的char中,而不是char*中。

您可以直接从QTextStream:读取值

QTextStream t(&file);
int value;
t >> value;

这将自动检测前导0x,并将其余部分读取为十六进制数。