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

标签 c++ qt

文件包含字符“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*。我必须将结果存储在 unsigned char 中,而不是 char*。

最佳答案

可以直接从QTextStream中读取值:

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

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

关于c++ - 如何从文件中读取十六进制并将其存储在无符号字符中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36173960/

相关文章:

c++ - boost asio async_read_some 超时

c++ - 在不创建 Functor 类的情况下使用 Functors 时出错?

c++ - 如何让 Ctrl+Q 退出没有菜单栏的 QT5 应用程序

c++ - vtk 6.x,Qt : 3D (line, 表面,散点图)绘图

c++ - 如何编写与 std::ranges 兼容的无限序列?

c++ - 如果没有指针,如何识别堆栈上的内存?

c++ - QT Creator C++ 不为一项生成 ui_.h 文件

windows - 为什么我的 Qt 应用程序即使在非管理员访问权限下也会写入 protected 位置?

c++ - 如何使用编译时预定义图像在 QT 中定义图标?

c++ - 区分选定单元格和编辑单元格