| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1553 人关注过本帖
标题:为什么读取数组的时候会出现这样的错误。
只看楼主 加入收藏
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
结帖率:75%
收藏
 问题点数:0 回复次数:7 
为什么读取数组的时候会出现这样的错误。
程序代码:
int main()
{
    //=====================================================
    //基本数据
    const int LIE = 10;//列数 经度的数量(几个不同的数)
    const int HANG = 12; //行数 纬度的数量
    float lon[LIE*HANG];
    float lat[LIE*HANG];
    int soiltype[LIE*HANG];//土壤类型个数的总量


    //======================================================
    FILE* in, *out;
    in = fopen("F:\\2017C\\soil_test.txt", "r");//读入路径
    out = fopen("F:\\2017C\\1.txt", "w");//输出路径
    while (!feof(in))
    {
        fscanf(in, "%f" "%f" "%d", lon, lat, soiltype);//调试的时候发现数据并没有真的读入数组中,循环到最后只有soiltype[0]有数值,其他都不是真正的数值?
    }
   
为什么会这样呢?下面是读入的数据格式
程序代码:
97     43    2   
97.5    43     1   
98     43    2   
98.5     43    2   
99     43    2   
99.5     43     5     
100    43    2   
100.5    43    2   
101    43    2   
101.5    43    2   
102    43     4   



[此贴子已经被作者于2017-5-18 21:51编辑过]

搜索更多相关主题的帖子: 读取 数组 错误 int 读入 
2017-05-18 21:48
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
fscanf(in, "%f %f %d", lon, lat, soiltype);//漏了 &

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-18 21:49
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 2楼 renkejun1942
加上&,还是一样,不能给数组里的每一个值都赋值。另外我似乎记得给数组赋值不需要加&,还请大神解答
2017-05-19 11:33
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 2楼 renkejun1942
图片附件: 游客没有浏览图片的权限,请 登录注册

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

变成这样了,后面的数根本没有读进去
2017-05-19 11:40
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
没soil_test.txt文件,大概是这样吧

#include <stdio.h>
int main()
{
    //=====================================================
    //基本数据
    const int LIE = 10;//列数 经度的数量(几个不同的数)
    const int HANG = 12; //行数 纬度的数量
    float lon[LIE*HANG];
    float lat[LIE*HANG];
    int soiltype[LIE*HANG];//土壤类型个数的总量


    //======================================================
    FILE* in, *out;
    in = fopen("F:\\2017C\\soil_test.txt", "r");//读入路径
    out = fopen("F:\\2017C\\1.txt", "w");//输出路径
    int i=0;
    while (!feof(in) && i<HANG)
    {
        fscanf(in, "%f %f %d", &lon[i], &lat[i], &soiltype[i]);
        fprintf(out, "%f %f %d\n", lon[i], lat[i], soiltype[i]);
        i++;
    }
    fclose(in);
    fclose(out);
}
   
2017-05-19 11:46
校草
Rank: 1
等 级:新手上路
帖 子:50
专家分:7
注 册:2017-3-15
收藏
得分:0 
回复 5楼 吹水佬
好吧!还是得借助下标,一个一个赋值!学习了
2017-05-19 11:53
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
收藏
得分:0 
这种问题也拿出来问,scanf函数都没整明白
2017-07-06 11:39
nandoulong
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2017-7-6
收藏
得分:0 
首先你得读到内存里,才能写进文件中
2017-07-06 13:54
快速回复:为什么读取数组的时候会出现这样的错误。
数据加载中...
 
   



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

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