如何使用最简便的方式读取hex格式的文件到容器中

crossingxb 2009-11-28 11:56:39
如果一个文件中存放的数据以十进制形式的话(比如“384,944,2014,2879,24,59”),那么只要:
ifstream ifs("oct.dat");
vector<int> vec_int( (istream_iterator<int>(ifs)), istream_iterator<int>() );

问题:
假如是以十六进制形式的话(比如“0x4B3F,0x7FCD,0x4878,0x905A”),那么怎样将文件中的数据放到vector<int>的容器中呢?(尽量少的代码行数实现,谢谢~~)

...全文
252 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
太乙 2009-11-29
  • 打赏
  • 举报
回复
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
#include <string>
using namespace std;
int fun(string& str)
{
int res;
sscanf(str.c_str(),"0x%x",res);
return res;
}
int main () {
vector<int> res;
vector<int>::iterator it;
ifstream ifs("1.txt");
transform (istream_iterator <string>(ifs), istream_iterator <string>(), back_inserter(res), fun);
for (it=res.begin(); it!=res.end(); ++it)
cout << " " << *it;
cout << endl;
return 0;
}



没有测试过~~~
WingForce 2009-11-29
  • 打赏
  • 举报
回复

ifstream ifs("oct.dat");
ifs.unsetf(ios_base::dec);
ifs.setf(ios_base::hex);
vector<int> vec_int( (istream_iterator<int>(ifs)), istream_iterator<int>() );

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧