| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1249 人关注过本帖
标题:这个字符串怎样读?[求助]
只看楼主 加入收藏
ibeliveican
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-12-7
收藏
 问题点数:0 回复次数:10 
这个字符串怎样读?[求助]

我是新手,因此在编程中遇到了很多很基本但个人无法解决的问题,请各位高手不要见笑。
我有一个message1文件,是由
8B 62 03 8B 05 14 21 2E 2E FF C7 6D 42 71 77 00 15 25 C3 E3 AD 0D 8C 19 EB 52 A0 FF A5 F6 2D F0 96 0E D7

这样的十六进制数组成。而且每个数字中间有空格隔开。
我编了一段小程序把他们读入一个数组里,象这样

int main(){

FILE *fp;
int i;
char str[104];
if((fp=fopen("message1.txt","r+t"))==NULL)
{
return(0);
}

for(i=0;i<104;i++)
{fread(&str[i],1,1,fp);
cout<<"str["<<i<<"]"<<str[i]<<endl;
}

}
因此得到的结果是;
str[0]8
str[1]B
str[2]
str[3]6
str[4]2
str[5]
: :
: :
但是我不想得到这样结果,我想输出的结果是,8B,62等这样的数字作为一个整体,一起输出,比如说str[0]8B 这个样子,
而且每个数字中间的空格不输出。请问各位高手,用什莫方法可以实现呢?希望能够得到各位的指点,谢谢

搜索更多相关主题的帖子: 字符 
2005-12-07 00:59
本人已死
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2005-9-20
收藏
得分:0 
你输出的时候不要用for循环来一个一个字符的输出嘛,用puts()直接一排全输出来了

爸爸告诉我:女人喜欢有钱的男人;妈妈告诉我:女人喜欢有貌的男人。我翻翻钱包,又照照镜子,然后我哭了
2005-12-07 02:34
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
int main(){

FILE *fp;
int i;
char str;
if((fp=fopen("message1.txt","r+t"))==NULL)
{
return(0);
}

for(i=0;i<31;i++)
{fread(&str,1,1,fp);
cout<<"str["<<i<<"]"<<str;
fread(&str,1,1,fp);
cout<<str;
fread(&str,1,1,fp);
}
return(1);
}

天行健,君子以自强不息!!QQ:68660681
2005-12-07 13:41
badstreams
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-23
收藏
得分:0 
文件中的数据是以什么形式保存的啊~~
跟类型有关啊
2005-12-07 17:03
ibeliveican
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-12-7
收藏
得分:0 
谢谢大家的回复
我的数据是用text文件格式,请问这和文件读取有什莫关系呢?
我用怎样的文件格式或者怎样的函数才能实现str[0]8B str[1]62。。。。。这样的
读取方式呢?

2005-12-07 20:22
cherrysindow
Rank: 2
等 级:论坛游民
帖 子:124
专家分:10
注 册:2005-10-21
收藏
得分:0 

你的数组定义的是char型

所以一次只能读出一个字符

这样的话,你的问题就是怎样得到你的输出

我说的对不?



如果是文本文件的话,你可以在输出的时候每循环一次输出3个字符

如果真的不想要空格的话,可以将空格滤掉

一次循环变量的增量变成3,但是输出前2个字符



如果文件是二进制文件,可以将缓冲数组定义成int

然后将文件的每一个空格变成2个

然后每一次读出的数后,将这个整数右移8位(相当于除以2^8)

输出的时候输出它的十六进制形式

[此贴子已经被作者于2005-12-7 20:38:54编辑过]


虽然我很普通,但是我很讲道理 如果我的问题冒犯了您 请不要生气 因为我是无意的
2005-12-07 20:35
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
用char[2]比较好,int在不同环境下可不一定都是16位

淘宝杜琨
2005-12-07 20:40
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 

强!!!!


学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-07 20:47
cherrysindow
Rank: 2
等 级:论坛游民
帖 子:124
专家分:10
注 册:2005-10-21
收藏
得分:0 
谢谢7楼的指点

我没有注意这个问题

如果用char[2]

空格是应该去掉的

虽然我很普通,但是我很讲道理 如果我的问题冒犯了您 请不要生气 因为我是无意的
2005-12-07 21:05
ibeliveican
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-12-7
收藏
得分:0 

真是太感谢大家的回复了
可是我真恨我自己,还是不明白,char[2]是怎末回事?
如果哪位高手有时间或者愿意的话,能不能写的更明白一点,我感激不尽!


2005-12-08 01:18
快速回复:这个字符串怎样读?[求助]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027256 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved