| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:00 01 字符串如何读取?
只看楼主 加入收藏
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:3 
我觉得你利用判断然后统计出个数及好办了,如果是浮点型,用格式转换进行大小比较判断

Maybe
2013-03-07 12:02
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:3 
while (fscanf("%f %d %d %d %d %d", a, b, c, d, e), fgetc() != EOF)
{
}


[fly]存在即是合理[/fly]
2013-03-07 12:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用qhxxbc在2013-3-7 11:19:15的发言:

只有当第2列为1时,我才统计4种字符串比例,因此结果如下:
第3行,11和10各占50%,00和01占0%
第5行,11,10,00和01各占25%

算我嘴贱,帮不了你。
凭我的智力,看不出任何必定的规律,比如为什么是“11和10各占50%”而不是“10和11各占50%”等等等等。
2013-03-07 12:16
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
问题解决了,基本思路为:
1.读取文本数据到数组
程序代码:
int i=0, N_Number=0;    

    double c, Cca[Dim];
    int NOpen[Dim], iN;
    char c0[Dim][2], c1[Dim][2], c2[Dim][2], c3[Dim][2], b0[2], b1[2], b2[2], b3[2];

    while( fscanf(fp, "%lf %d %s %s %s %s\n", &c, &iN, b0, b1, b2, b3)!=EOF )
    {
        Cca[i] = c;
        NOpen[i]  = iN;
        strcpy(c0[i], b0);
        strcpy(c1[i], b1);
        strcpy(c2[i], b2);
        strcpy(c3[i], b3);
        i++;
        N_Number++;
    }
2.挑选需统计行到新文本(注意字符串的输出改为整形)
程序代码:
while (i<N_Number)
    {
        if ( (NOpen[i]==0) && (NOpen[i+1]>0) )
        {
            fprintf(pn, "%lf %d %c%c %c%c %c%c %c%c\n", Cca[i], NOpen[i], c0[i][0],c0[i][1], c1[i][0],c1[i][1],c2[i][0],c2[i][1],c3[i][0],c3[i][1]);
        }
        i++;
    }
3.字符统计
程序代码:
for (i=0; i<N_Number; i++)
    {
        if( (c0[i][0]=='0')&&(c0[i][1]=='0') ) a00++;
        if( (c0[i][0]=='0')&&(c0[i][1]=='1') ) a01++;
        if( (c0[i][0]=='1')&&(c0[i][1]=='0') ) a10++;
        if( (c0[i][0]=='1')&&(c0[i][1]=='1') ) a11++;
       

        if( (c1[i][0]=='0')&&(c1[i][1]=='0') ) a00++;
        if( (c1[i][0]=='0')&&(c1[i][1]=='1') ) a01++;
        if( (c1[i][0]=='1')&&(c1[i][1]=='0') ) a10++;
        if( (c1[i][0]=='1')&&(c1[i][1]=='1') ) a11++;
       

        if( (c2[i][0]=='0')&&(c2[i][1]=='0') ) a00++;
        if( (c2[i][0]=='0')&&(c2[i][1]=='1') ) a01++;
        if( (c2[i][0]=='1')&&(c2[i][1]=='0') ) a10++;
        if( (c2[i][0]=='1')&&(c2[i][1]=='1') ) a11++;
       

        if( (c3[i][0]=='0')&&(c3[i][1]=='0') ) a00++;
        if( (c3[i][0]=='0')&&(c3[i][1]=='1') ) a01++;
        if( (c3[i][0]=='1')&&(c3[i][1]=='0') ) a10++;
        if( (c3[i][0]=='1')&&(c3[i][1]=='1') ) a11++;       

       

        fprintf(pn, "%lf %lf %lf %lf\n", a00/(double)4, a01/(double)4, a10/(double)4, a11/(double)4);
        a00=0, a01=0, a10=0, a11=0;
    }


非计算机专业自学新手向大家请教
2013-03-08 18:48
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
方法可能比较笨拙,希望能给需要的人提供帮助。
若有好建议,可继续指点,谢谢

非计算机专业自学新手向大家请教
2013-03-08 18:50
快速回复:00 01 字符串如何读取?
数据加载中...
 
   



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

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