C++文件读取的问题

查看:85
本文介绍了C++文件读取的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在k.txt中放有(也只有)数据:0x0123456789abcdef
如何将该数据读入到unsigned char k[8]中?
再进一步,可不可以根据是否有0x,按照十进制/十六进制分别将64bit数据从文件中读入并存到unsigned char k[8]中?

补充一下,希望能给出代码,因为我对C++文件操作控制不熟悉。

还有就是,txt文件中放的是16进制数,我希望保存到unsigned char k[8]中的是这个16进制数对应的二进制形式所代表的值(而不是这个字符)。

举个例子,0x4142读取以后,我希望保存到char k[8]中的是字符A和字符B而不是41和42

解决方案

跟楼上一样,去除0x并把字符串切割。然后用istringstream读入unsigned int再转型。
具体做法看下面。

int main() {
    istringstream iss("41 42 43 44");
    vector<unsigned char> k;

    unsigned int c;
    unsigned char *kk;
    while (iss >> std::hex >> c)
    {
        k.push_back(c);
    }
    kk=&k[0];
    cout << kk<< endl;
    
}

这篇关于C++文件读取的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆