24小时热门版块排行榜    

查看: 1940  |  回复: 8

不死蜗牛

新虫 (小有名气)

[求助] 使用C语言编程从TXT中提取某些数据数据(为16进制),将所提取的转换为十进制 已有2人参与

使用C语言编程从TXT中提取某些数据数据(为16进制),将所提取的转换为十进制。就是怎样将每行的第六个与第七个数据转换成十进制并提取出来。
例如:第一行00DB转换成219
数据如下:
01 03 06 04 4C 00 DB 1D 50 48 68
01 03 06 04 4C 00 DB 1D 50 48 68
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
01 03 06 04 4C 00 DA 1D 40 18 64
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2013-12-20 18:19:54
00DB 对每个字符做运
如果字符t在['A','F']之间,或者小写的,num = t-'A'+ 1 + 10
2楼2013-12-20 12:24:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

不死蜗牛

新虫 (小有名气)

引用回帖:
2楼: Originally posted by lijie169 at 2013-12-20 12:24:48
00DB 对每个字符做运
如果字符t在之间,或者小写的,num = t-'A'+ 1 + 10

谢谢,那怎样将其提取出来
3楼2013-12-20 16:12:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2013-12-21 00:45:34
根据空格字符确定
4楼2013-12-20 20:26:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

thailand

禁虫 (初入文坛)

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-12-21 00:45:25
不死蜗牛: 金币+5, ★★★很有帮助 2013-12-21 09:11:57
本帖内容被屏蔽

5楼2013-12-20 20:50:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 编辑内容 2013-12-21 00:45
不死蜗牛: 金币+10, ★★★很有帮助 2013-12-21 09:11:43
将你的文本文件重命名为test.txt,放到如下源程序的文件夹中,运行源程序即可;
CODE:
#include <stdio.h>
#include <stdio.h>
int main()
{
        FILE *fp;
        int i=0;
        int x,m,high2bits=0,low2bits=0;
        if((fp=fopen("test.txt","r"))==NULL)
        {
                printf("cannot open file");
                return -1;
        }
   printf("Results:\n");
   while(!feof(fp))
   {
      fscanf(fp,"%x",&x);
      i++;
      m=i%11;
      if(m==6)
              high2bits=x;
      else if(m==7)
      {
              low2bits=x;
              printf("%-5d ",high2bits*16*16+low2bits);
      }
   }
   fclose(fp);       
        return 0;
}

[ Last edited by jjdg on 2013-12-21 at 00:45 ]
6楼2013-12-20 21:46:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)

引用回帖:
6楼: Originally posted by sxu2009 at 2013-12-20 21:46:41
将你的文本文件重命名为test.txt,放到如下源程序的文件夹中,运行源程序即可;

#include <stdio.h>
#include <stdio.h>
int main()
{
        FILE *fp;
        int i=0;
        int x,m,high2bits=0,low2bits=0; ...

上帖中笑脸替换为下面双引号中的字符串:
”, &x ) ;”
7楼2013-12-20 21:50:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sxu2009

至尊木虫 (正式写手)


jjdg: 金币+1, 辛苦了 2013-12-21 00:45:54
引用回帖:
7楼: Originally posted by sxu2009 at 2013-12-20 21:50:02
上帖中笑脸替换为下面双引号中的字符串:
”, &x ) ;”...

不好意思,笑脸应均替换为半角的右括号。
8楼2013-12-20 21:53:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

不死蜗牛

新虫 (小有名气)

引用回帖:
8楼: Originally posted by sxu2009 at 2013-12-20 21:53:20
不好意思,笑脸应均替换为半角的右括号。...

非常感谢你的回复,很有帮助!
9楼2013-12-21 09:12:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 不死蜗牛 的主题更新
信息提示
请填处理意见