| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9025 人关注过本帖
标题:如何将文件中数据按要求存入数组中
只看楼主 加入收藏
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:12 
如何将文件中数据按要求存入数组中
数据文件中的文件头的内容是描述特征和标记的,从@DATA的下一行开始描述真正的数据。每一行为一条记录,例如在cellcycle_FUN.train.arff中,第一条记录为
[local]1[/local]
0.65,1.39,-0.29,-0.54,-0.6,-0.45,-0.13,0.35,-0.01,0.49,0.18,0.43,-0.23,-0.3,-0.24,0.23,0.04,0.09,0.18,0.16,-0.01,-0.21,?,?,?,0.14,0.58,0.25,0.03,-1,0,-0.41,0.1,0.14,0.4,0.2,0.24,?,0.26,-0.39,0.43,-0.26,-0.33,-0.37,?,?,-0.59,-0.16,0.66,-0.1,0.07,-0.33,0.41,-0.23,-0.51,0.58,0.07,0.32,0.01,0.17,?,-0.21,-0.14,-0.17,-0.28,-0.16,0.2,0.36,0.17,0.39,0.1,0,-0.16,0.29,-0.06,-0.26,-0.41,14/04@20/09/07/03   如何将最后一个逗号前的数据和后面的数据分别存入一个二维数组中
这条记录中,最后的11/02/01@11/02/02@11/02/03/01是三个功能,用@隔开,前面逗号隔开的是数据的属性值。
编程将cellcycle_FUN.train.arff文件的内容读入2个二维数组,一个存储每条记录的属性值,这个都用double类型,其中?大家读入的时候用0表示。;一个数组存储每条记录的功能编号。cellcycle_FUN.test.arff和cellcycle_FUN.valid.arff也类似处理。
读入的数据结果(部分):[local]2[/local]

搜索更多相关主题的帖子: 记录 如何 
2016-10-08 15:04
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:7 
[local]1[/local]
是丢了附件还是丢了图片。补发完整上来,现在还看不太懂你再说什么。

 如何将最后一个逗号前的数据和后面的数据分别存入一个二维数组中
能谈谈这二维数组第一维存什么第二维存什么,二维数组大小在文件头里有没有交代?你要读的文件是啥德行,你要的结果(输出)又是啥。

参阅     本版块置顶帖  https://bbs.bccn.net/thread-41519-1-1.html  

希望所有同学在发帖之后都能看一眼,看看你所描述的到底完不完整,能不能让别人理解你再说什么。





φ(゜▽゜*)♪
2016-10-08 16:06
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:7 
回复 楼主 hllSaturn
不是很清楚你的意思
如果你的文件是这种格式
12,123,11/02/01@...
而你要读到123为止,后面的11/02/01要读到另外一个数组的话,可以以fgetc的格式读取字符
遇到@后回退10个字符fseek(fp,-10L,SEEK_CUR);然后把对应读取的10个字符删除。


2016-10-08 17:00
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
收藏
得分:0 
回复 2楼 书生牛犊
数据结构实验题.rar (437.4 KB)

这是实验要求及数据,现在问题出现在如何将数据文件cellcycle_FUN.test.arff等按要求读入数组中。
2016-10-09 10:41
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
收藏
得分:0 
回复 3楼 ehszt
10个字符是指最后一个逗号之前的那些数据的长度么?、要是之前有很多个数据要怎么计算其长度?
2016-10-09 10:44
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
收藏
得分:0 
回复 2楼 书生牛犊
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *fp1,*fp2;
struct fun
{
    char a[100];
    int b;
}sj[1500];
struct shu
{
    double a;
    char b[100];
}sj2[5000];
void yubeishuju()
{
    int i;
    if((fp1=fopen("fun.topics.txt","r+"))==NULL)
    {
        printf("File open error!");
        exit(0);
    }
    for(i=0;!feof(fp1);i++)
    {
        fscanf(fp1,"%s",sj[i].a);
    }
    return i;
}
void bijiaoshuju(int i)
{
    int j,k,n,len;
     n=i;
    for(i=0;i<n;i++)
    {
        len=strlen(sj[i].a);
        if(len==2)
            sj[i].b=(-1);
        else
        {
            for(k=0;k<i;k++)
            {
                for(j=0;j<len;j++)
                {
                    if(sj[i].a[j]!=sj[k].a[j]&&sj[k].a[j]=='\0'&&sj[i].a[j+3]=='\0')
                        sj[i].b=k;
                    if(sj[i].a[j]!=sj[k].a[j]&&sj[k].a[j]!='\0')
                        j=len;
                }
            }
        }

    }

}
void duqushuju()
{

    if((fp2=fopen("cellcycle_FUN.test.arfff","r+"))==NULL)
    {
        printf("File open error!");
        exit(0);
    }
    int i;
    int m;
    while(i<82&& (m=fgetc(fp2))!=EOF)    //n就是你想跳过的行数
    {
      if (m=='\n') i++;
    }
    for(;!feof(fp1);i++)
    {
        fscanf(fp2,"%s",sj2[i].a);
    }

}
写到这就不会了~~
2016-10-09 10:45
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:7 
图片附件: 游客没有浏览图片的权限,请 登录注册


输出这个是不是你想要的结果哦,
你的数据太多了,输出慢,要运行半天,只用了20多行数据来试验一下,把后面的都删除了。。。
还有第三行数据和你的结果有点不一样,不知道怎么回事

从文件中读数据,你要清楚各个状态,把每个你想要的字符串解析出来,再进行类型转换就行了。。。
2016-10-09 16:41
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
收藏
得分:0 
回复 7楼 word123
怎么判断最后一个逗号?~
2016-10-12 10:06
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
一样的啊,如果你读到逗号,说明前面是一个数据,如果读到@说明前面是01/11/22这这种格式的
-0.26,-0.41,14/04@20/09/07/03
2016-10-12 11:04
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
收藏
得分:0 
回复 9楼 word123
恩恩~可以看一下代码么?~感谢~
2016-10-12 11:12
快速回复:如何将文件中数据按要求存入数组中
数据加载中...
 
   



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

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