| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1383 人关注过本帖
标题:C语言中有没有按行匹配查找并读取数据的功能?
只看楼主 加入收藏
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:9 
C语言中有没有按行匹配查找并读取数据的功能?
程序代码:
 10000 1600      1991  11  22  43  64 159 113 143 176 234 151  28   4

 10050 1600     1991  11  26  53  72 148  85 117 140 215 139  25   3

 10100 1600     1991  11  26  49  69 147 133 156 180 247 122  20   3

 10150 1600     1991   9  25  56  79 150 127 146 158 266 116  17   3

 10200 1600     1991   7  20  55  85 157 137 149 148 298 112  16   4

 10250 1600     1991   8  17  42  85 153 149 161 155 280  99  17   6

 10300 1600     1991   7  15  33  83 159 165 176 181 274  89  15   6

 10350 1600     1991   5  17  32  82 183 187 196 230 300  89  11   2

 10400 1600     1991   3  17  36  82 194 211 217 262 313  84   6   0

 10450 1600     1991   3  17  41  81 198 234 245 289 321  83   7   0

 10500 1600     1991   8  17  40  79 206 247 284 330 324  99  25  10

 10550 1600     1991  21  21  37  76 204 237 305 360 330 139  75  37

 10000 1600     1992  11  22  43  64 159 113 143 176 234 151  28   4

 10050 1600     1992  11  26  53  72 148  85 117 140 215 139  25   3

 10100 1600     1992  11  26  49  69 147 133 156 180 247 122  20   3

 10150 1600     1992   9  25  56  79 150 127 146 158 266 116  17   3

 10200 1600     1992   7  20  55  85 157 137 149 148 298 112  16   4

 10250 1600     1992   8  17  42  85 153 149 161 155 280  99  17   6

 10300 1600     1992   7  15  33  83 159 165 176 181 274  89  15   6

 10350 1600     1992   5  17  32  82 183 187 196 230 300  89  11   2

 10400 1600     1992   3  17  36  82 194 211 217 262 313  84   6   0

 10450 1600     1992   3  17  41  81 198 234 245 289 321  83   7   0

 10500 1600     1992   8  17  40  79 206 247 284 330 324  99  25  10

 10550 1600     1992  21  21  37  76 204 237 305 360 330 139  75  37
东经105.5 北纬16.00  年份 1月  2月  3月。。。。。。。。。。。。。。。。。。。11月  12月

有一个TXT文件需要做处理,上面只是一部分数据。暂时只能想到的方法:
用二维数组开辟空间再逐一赋值,取值计算的时候直接调用num[?][?]来计算,这样做方便但数据量大的时候肯定不管用
所以想请教一下,能否读取数据,就是匹配一个经纬度值,然后把该经纬度的点所有年月数据取出来用(分别赋值给数组Year[],Month[]),用完再删除空间?然后匹配下一个经纬度,再循环?这样做可行吗?要如何实现呢?
搜索更多相关主题的帖子: C语言 
2017-03-16 15:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:0 
有一个TXT文件需要做处理,上面只是一部分数据。暂时只能想到的方法:
在说“方法”之前,还是先告诉别人你想干什么吧!

按行读取数据,就是匹配一个经纬度值,然后把该经纬度的点所有年月数据取出来用(分别赋值给数组Year[],Month[]),用完再删除空间?然后匹配下一个经纬度,再循环?
听不懂,或许你自己听得懂,但问题是要让别人听得懂才行。
2017-03-16 16:25
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 2楼 rjsp
取出某一经纬度所有年月的数据进行计算,不知道你能懂不,比如:

取出经度为:10550 ,纬度为:1600,1991年,1月份-12月份的数据求月平均值,写到一个文件中;
然后取出同经纬度,1992年12个月份的数据求月平均值,再写到文件中(当然这个计算不会这么简单,要不然我就用EXCEL做了)。
我主要想表达的是:如何实现按规矩实现取数据这个功能。

2017-03-16 17:06
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
以下是引用rjsp在2017-3-16 16:25:12的发言:

在说“方法”之前,还是先告诉别人你想干什么吧!

听不懂,或许你自己听得懂,但问题是要让别人听得懂才行。

抱歉哈,描述的不是很清楚
2017-03-16 17:13
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
跳转到下一行用fscanf读前面两个数比较,至于跳转到下一行程序可以用fseek和ftell来构造。
2017-03-16 17:27
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 5楼 ehszt
嗯嗯~我试试
2017-03-16 18:09
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
fopen fwrite fread fgetc 等等 几乎都接近于底层函数

所以 所有的功能 (你想想中的这样那样的功能) 都需要自己设计算法

DO IT YOURSELF !
2017-03-16 18:25
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10611
专家分:43210
注 册:2014-5-20
收藏
得分:15 
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

#include "stdio.h"
main()
{
    int lon, lat, year, m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12;
    FILE *fp=fopen("test.txt", "r");
    while (!feof(fp))
    {
        fscanf(fp, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
            &lon,&lat,&year,&m1,&m2,&m3,&m4,&m5,&m6,&m7,&m8,&m9,&m10,&m11,&m12);
        printf("%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
            lon,lat,year,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12);
    }
    fclose(fp);
}
2017-03-16 20:22
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:5 
你是否想说,输入某个对应项的值后,找出从文本里相应项下相同值的那条语句?
楼上已经给了很好的以行为单位去遍历文本内容的方式了,加入一个if判断你输入的是否相等就可以了。
2017-03-16 21:03
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 8楼 吹水佬
程序代码:
#include <stdio.h>
main()
{
    int lon, lat, year, m[12];
    FILE *fp = fopen("F:\\2017C\\prec.txt", "r");
    while (!feof(fp))
    {
        fscanf(fp, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
            &lon, &lat, &year, &m[0], &m[1], &m[2], &m[3], &m[4], &m[5], &m[6], &m[7], &m[8], &m[9], &m[10], &m[11]);
        printf("%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d\n",
            lon, lat, year, m[0],m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11]);
    }
    fclose(fp);
    return 0;
}


为什么我把它改成数组就不能通过编译呢?
2017-03-20 22:29
快速回复:C语言中有没有按行匹配查找并读取数据的功能?
数据加载中...
 
   



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

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