C++文件读取的问题
本文介绍了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屋!
查看全文