【问题标题】:Reading a character and a hexadecimal value from a file in C++从 C++ 文件中读取一个字符和一个十六进制值
【发布时间】:2015-12-20 18:06:37
【问题描述】:

我的文件是这样的

k FFFFFFFF
s FFFFFFFF
t FFFFFF

我想从文件中读取每个字符及其十六进制值并对其进行处理,然后转到下一个。我该怎么办

【问题讨论】:

  • 将十六进制部分读入std::string,然后使用std::stoi()进行转换
  • 您是否尝试过任何您遇到问题的方法?

标签: c++ hex file-handling


【解决方案1】:

您可以使用std::hex I/O 操纵器并遵循正常的“读取文件”公式。

例如,从标准输入读取您的输入格式:

int main() {
    char c = 0;
    unsigned int i = 0;
    std::cin >> std::hex; // Read hexadecimal integers
    while (std::cin >> c >> i)
    {
        std::cout << "c: " << c << ", i: " << i << std::endl; 
    }
}

样本输入的输出:

c: k, i: 4294967295
c: s, i: 4294967295
c: t, i: 16777215

【讨论】:

  • 所以十六进制值与这里的变量 i 相关联,我有十六进制值,如 FFFFFFF(七个 FFF)和 FFFFFF(六个 FFF),但我的最大值是 FFFFFFFF(八个 FFF)。我想在while循环中进行处理,即使用大小为32的数组中的每个二进制元素将十六进制转换为二进制(因为我最多有8个F),但如果数组的顶部小于8十六进制字符..
猜你喜欢
  • 2015-05-01
  • 2011-08-26
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
  • 2014-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多