求教:从一个.txt文件中读出字符,按照要求放入字符串或字符数组中

lwj909800 2009-06-15 12:56:19
小弟是新人,现有一程序向各位大虾求教
问题:从一个.txt文件中读出字符,按照要求放入字符串或字符数组中即可。
具体描述:
1、.txt文件中字符为十六进制数字的组合,以空格键作为分隔符,以回车键作为换行符
01 05 23 2a 2e ea f5
ff ef a5 7f 39 9a 0e
.....
2、将上述字符转化为十六进制字符,比如,"01"转化为"0x01","ef"转化为"0xef",然后放入一个字符串或者数组中

本人思路:
现获取该文件中所有字符的个数CharNum,然后利用
do
{
转化;
写入输出字符串或者输出数组中;
}while(最后一对字符处理完成)
来完成数据处理工作。

现在的困难:
1、如何获取文件中所有字符的个数CharNum?
2、如何按要求实现转化?
...全文
667 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwj909800 2009-06-17
  • 打赏
  • 举报
回复
这两天忙着 别的事情,有空一定按照楼上各位的方法试试
有结论后,一定给分

先谢谢各位
neohope 2009-06-16
  • 打赏
  • 举报
回复
二进制文件就用二进制处理
1.ifstream read与binary打开你的文件
ofstream write 打开要写的文件
2.设置一个字符缓冲区char[128]
3.每次读入1Byte,存入缓冲区,遇到回车换行结束
写入本行
继续循环直到文件结束

cout<<hex<<"0x"<<试试
dengxuxing 2009-06-16
  • 打赏
  • 举报
回复
如果你的数据每个之间只隔一个空格而且最后不是回车结束的话可以这样:
先全部读出来存在一个字符串str中,

str="0x"+str;
str.Replace(" "," 0x");
str.Replace("\r\n","\r\n0x");
lwj909800 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cerfly 的回复:]
不知道楼主要知道字符的个数干嘛
我的想法:
取一行
在用空格判断,取出一个类似“01”,“05”什么的赋给string s;
string ss=“0x”;
s=ss+s;
将s字符串或字符数组

呵呵,俺也是菜鸟,不对请指正
[/Quote]

实际就是 文件中的“f5”是两个字符,最终要变成一个字符“0xf5”放入缓冲区,然后通过422或者232发送出去

还请各位大虾不吝指教
左沁 2009-06-15
  • 打赏
  • 举报
回复
晕死,有人抢先了,而且好像还有点雷同
左沁 2009-06-15
  • 打赏
  • 举报
回复
不知道楼主要知道字符的个数干嘛
我的想法:
取一行
在用空格判断,取出一个类似“01”,“05”什么的赋给string s;
string ss=“0x”;
s=ss+s;
将s字符串或字符数组

呵呵,俺也是菜鸟,不对请指正

xjtudg 2009-06-15
  • 打赏
  • 举报
回复
给你个思路,不用获取字符个数,而是用fgets以行为单位读取文件然后用字符串处理,读一行处理一行,处理完为止.至于对每行的处理,你可以用CString类的Tokenize函数来处理.Tokenize函数的作用是以某个字符为标志截取字符串里面的内容,比如你的就可以以空格为标志截取.

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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