| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2462 人关注过本帖
标题:数据分析程序求指教
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,谁告诉你scanf只能从键盘获取数据的?
同样printf也不是只能在屏幕上输出信息。
通过流重定向,它们俩完全可以(也非常方便)读写文本文件。

有时候光靠说还是很难表述清楚。这样吧,你发一份标准输入和标准输出上来(要精确的格式)。我写段代码给你好了。

很简单,你一看就明白是怎么回事了。

重剑无锋,大巧不工
2012-04-21 20:43
venus85
Rank: 6Rank: 6
等 级:侠之大者
帖 子:159
专家分:477
注 册:2010-11-27
收藏
得分:0 
回复 11楼 beyondyf
非常感谢你的热心帮助,待分析的数据如下,如果方便的话可以加我企鹅吗?一三六九三零七三零,再次表示感谢!!!
我没有把112.5行都贴上来,有这些应该够了!


#md 0x200eb8c0 4 450
0x200eb8c0: 02681000 00000803 00000001 01200000    ...............
0x200eb8d0: 00000000 000feffd 02000000 23001000    ...............
0x200eb8e0: 01003000 000021ca 03000100 00102000    ...............
0x200eb8f0: 00000000 300a0001 09100001 00710000    a......asd.....
0x200eb900: 01000001 00200001 0a000305 000d00e0    ......f......e.
0x200eb910: 00000000 00000a40 00000000 00011100    ...............
0x200eb920: 0000c000 00010000 00000001 0030040a    ............d..
0x200eb930: 00030020 000d0000 a0000020 00020000    .....e.....e...
0x200eb940: 00000000 0002d000 0003000f 00ac0100    ...............
0x200eb950: 00030001 000020d0 0000ce00 00111100    ....fcd....dc..
0x200eb960: 00013000 0020001a 0010a010 00010010    ...............
0x200eb970: 00000000 00011000 00200003 0000102a    .....c.......a.
0x200eb980: 00081000 00010003 000a0000 0f100000    ......f........
0x200eb990: 00000000 000ec00d 02003400 10001000    ...............
0x200eb9a0: 00000000 0000f100 0d000100 000de000    ...e.......d...
0x200eb9b0: 00000000 300a0001 09100001 00710000    a..............
0x200eb9c0: 01000001 00200001 0a000305 000d00e0    ......f......e.
0x200eb9d0: 00000000 00000a40 00000000 00011100    ...............
2012-04-21 21:16
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
哦,我想要的更细致些,最好是发个实际文件上来。呵呵,请放心,我只想分析文件格式,单个的这类文件应该不会泄漏什么商业秘密。

因为你上面数据里那个冒号看起来像是个全角字符,实际文件里就是个全角字符吗?还有最后一行只有半组数据,是什么样的?

你想要的输出格式是什么样的,最好有个完整的例子说明。

重剑无锋,大巧不工
2012-04-21 21:33
venus85
Rank: 6Rank: 6
等 级:侠之大者
帖 子:159
专家分:477
注 册:2010-11-27
收藏
得分:0 
回复 13楼 beyondyf
这个不存在商业秘密,只是实际的数据我这里没有,公司的电脑U口封了,copy不出来,你就帮我演示一下数据怎么读入(是以长整型读入还是以符号读入?还是以其他形式),怎么处理(16进制转换成2进制之后存储在哪里?以什么形式存储)就能很好的帮到我了,谢谢哦!

如果我用fread读的话,遇到#号这一行就不读,开始读下一行,这个怎么实现啊 ??

[ 本帖最后由 venus85 于 2012-4-21 22:45 编辑 ]
2012-04-21 22:38
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
唉,一段示例。
程序代码:
#include<stdio.h>

void GetData(int *dataset)
{
    int t, d1, d2, d3, d4, i;
    char tmp[1024];
    gets(tmp);
    for(i = 0; i < 112; i++)
    {
        scanf("0x%x: %x %x %x %x %s\n", &t, &d1, &d2, &d3, &d4, tmp);
        dataset[i * 4 + 0] = d1;
        dataset[i * 4 + 1] = d2;
        dataset[i * 4 + 2] = d3;
        dataset[i * 4 + 3] = d4;
    }
    scanf("0x%x:%x %x", &t, &d1, &d2);
    dataset[i * 4 + 0] = d1;
    dataset[i * 4 + 1] = d2;
}

int main()
{
    int data[450], i;
    GetData(data);
    for(i = 0; i < 450; i++)
        printf("%08x  ", data[i]);
    return 0;
}

解释一下该怎么用这段代码。

1.编译代码(设生成可执行文件为test.exe)
2.将数据文件拷贝到test.exe所在的路径下(不解释,等你基础扎实了就不必什么做了)设文件名为data.txt
3.在控制台这个路径下执行 test.exe<data.txt

[ 本帖最后由 beyondyf 于 2012-4-23 16:40 编辑 ]

重剑无锋,大巧不工
2012-04-22 23:14
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
虽然我不懂,但是我还是来顶一下
2012-04-22 23:44
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
学习一下

最基础的往往是你最容易忽略的!
2012-04-24 12:57
快速回复:数据分析程序求指教
数据加载中...
 
   



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

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