| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:用c++读取数据的问题
只看楼主 加入收藏
suchengjie
Rank: 1
等 级:新手上路
帖 子:118
专家分:1
注 册:2013-3-2
结帖率:90%
收藏
已结贴  问题点数:10 回复次数:6 
用c++读取数据的问题
用c++读取一个txt文件的数据,但是不显示出来,求指教。
代码如下:
#include<stdio.h>
void main()
{
    int i,j;
    int *nodexyz[241][135];
    FILE*file;
    file=fopen("data.txt","r");
    for( i=0;i<241;i++)   //地形数据的行数
    {
        for( j=0;j<135;j++)   //地形数据的列数
        {
        //    File.ReadString(FileData);
            fscanf(file,"%f",&nodexyz[i][j]);    //nodexyz[i][j]为存储地形数据的变量
        }
    }
    printf("the data is:",nodexyz[i][j]);
    fclose(file);
    //MessageBox("数据读取成功!");
}
搜索更多相关主题的帖子: include file 
2013-07-02 22:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
fscanf(file,"%f",&nodexyz[i][j]);
------ nodexyz[i][j]的类型你定义的是 int*,fscanf中却用 %f,根本猜不出你想干什么
另外,你到底用的是C还是C++?

程序代码:
#include <cstdio>

int main()
{
    double nodexyz[241][135];

    FILE* file = fopen( "data.txt", "r" );
    for( size_t i=0; i<sizeof(nodexyz)/sizeof(nodexyz[0]); ++i )
    {
        for( size_t j=0; j<sizeof(nodexyz[0])/sizeof(nodexyz[0][0]); ++j )
        {
            fscanf( file, "%lf", &nodexyz[i][j] );
        }
    }
    fclose(file);

    printf( "the data is:\n" );
    for( size_t i=0; i<sizeof(nodexyz)/sizeof(nodexyz[0]); ++i )
    {
        for( size_t j=0; j<sizeof(nodexyz[0])/sizeof(nodexyz[0][0]); ++j )
        {
            printf( " %lf", nodexyz[i][j] );
        }
        printf( "\n" );
    }

    return 0;
}

2013-07-03 08:18
suchengjie
Rank: 1
等 级:新手上路
帖 子:118
专家分:1
注 册:2013-3-2
收藏
得分:0 
按照你给出的修改了,可以读出数据,但是显示的数据不对,这是为什么呢
2013-07-03 11:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
以下是引用suchengjie在2013-7-3 11:38:14的发言:

按照你给出的修改了,可以读出数据,但是显示的数据不对,这是为什么呢

你这话说得。。。,我怎么回答你呢?
我这代码就是个示范,是根据你原先的代码修改而来,但你原先的代码有互相矛盾的地方,我只是随便选个写。
最可气的就是“数据不对”,啥叫“数据不对”?认真点行不行,说清楚点行不行?

2013-07-03 11:55
suchengjie
Rank: 1
等 级:新手上路
帖 子:118
专家分:1
注 册:2013-3-2
收藏
得分:0 
回复 4楼 rjsp
不好意思!是我的错,我的意思是说读取进去的数据和原来的数据不一样
原来数据是这样的:
283 254 306 426 202 210 207 214 328 398 231 254 439 585 384 576 412 322 404 432 474 481 450 394 450 584 454 507 452 366 357 414 386 377 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999  -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 66 76 73 73 86 95 80 79 83 98 124 95 98 97 159 141 114 129 123 144 151 140 145 160 158 190 173 148 135 158 166 196 198 178 186 206 199 241 297 394 298 309 327 757 982 839 1121 1250 1009 919 851 887 928 886 912 1026 1003 1123 1218 1394 1254 1362 1542 1070 877 834 896 1120 1016 944 993 863 615 587 386 -9999 520 440 465 644 426 454 376 272
读进去以后变成这样:
00000000000000000000000000.000000-925596044252860600000000000000000000
00000000000000000.00000-9255960455960454510302000000000000000000000000
..........
..........
我不知道为什么会这样
2013-07-03 13:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
回复 5楼 suchengjie
你没有代码中所写的 241×135 个数据呀,导致随后输出的都是未赋值的数据

程序代码:
#include <cstdio>
#include <vector>

int main()
{
    std::vector<int> nodes;

    FILE* file = fopen( "data.txt", "r" );
    for( int n; fscanf(file,"%d",&n)==1; )
    {
        nodes.push_back( n );
    }
    fclose(file);

    printf( "the data is:\n" );
    for( size_t i=0; i<nodes.size(); ++i )
    {
        printf( " %d", nodes[i] );
    }
    printf( "\n" );

    return 0;
}

2013-07-03 14:59
suchengjie
Rank: 1
等 级:新手上路
帖 子:118
专家分:1
注 册:2013-3-2
收藏
得分:0 
原来是这样,谢谢你耐心地指导
2013-07-03 15:59
快速回复:用c++读取数据的问题
数据加载中...
 
   



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

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