| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 267 人关注过本帖
标题:这个程序为什么在读文件时候读不全数据?
只看楼主 加入收藏
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
结帖率:81.82%
收藏
已结贴  问题点数:10 回复次数:7 
这个程序为什么在读文件时候读不全数据?
txt(数据):
4700.7100     -16.801     73.331    115.494     37.617  11414.634      1.009      8.802      9.738      9.444     15.011     10.455     20.906     11.063     25.445      5.398    -10.843      4.156    -13.112      3.634    -21.069      1.326    -25.070
4700.7397     -15.651     73.156    115.494     37.619  11415.498      1.009      8.802      9.740      9.444     15.003     10.455     20.897     11.076     25.430      5.415    -10.829      4.169    -13.517      3.645    -21.067      1.340    -25.064
4700.7700     -15.872     73.076    115.493     37.618  11416.296      1.010      8.802      9.745      9.444     14.998     10.455     20.887     11.088     25.416      5.433    -10.821      4.183    -13.924      3.657    -21.065      1.356    -25.058
4700.7998     -17.139     73.033    115.493     37.618  11416.997      1.011      8.802      9.745      9.444     14.993     10.455     20.879     11.099     25.412      5.450    -10.814      4.196    -14.308      3.668    -21.064      1.375    -25.051
4700.8296     -16.420     73.025    115.493     37.619  11417.612      1.012      8.802      9.750      9.444     14.989     10.455     20.866     11.110     25.391      5.466    -10.818      4.209    -14.683      3.679    -21.064      1.397    -25.039
4700.8599     -16.197     72.993    115.493     37.620  11418.146      1.013      8.802      9.748      9.444     14.987     10.455     20.854     11.121     25.394      5.481    -10.815      4.223    -15.048      3.691    -21.060      1.422    -25.032
4700.8896     -16.821     72.956    115.493     37.619  11418.576      1.014      8.802      9.753      9.444     14.994     10.455     20.859     11.132     25.387      5.496    -10.821      4.236    -15.385      3.703    -21.057      1.448    -25.017
4700.9199     -16.492     72.975    115.493     37.620  11418.917      1.015      8.802      9.759      9.444     14.994     10.455     20.850     11.142     25.392      5.511    -10.818      4.249    -15.700      3.716    -21.055      1.478    -25.017

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 1840
#define ROW 8
#define COLUMN 23
void main()
{
    FILE *fp;
    int i=0;
    int left=1;
    int right = 1;
    double sum = 0.0;
    char *filename = "data.txt";
    char ch;
    char data[MAXSIZE]={0};
    int num[MAXSIZE]={0};
    double    result[ROW*COLUMN];
    int t=0;
    fp = fopen(filename, "r");
   
    if (fp == NULL)
    {
        printf("NULL\n");
        exit(0);
    }
    else
        printf("suc\n");
    ch = fgetc(fp);
   
    while (ch != EOF)
    {
        data[i] = ch;
        ch = fgetc(fp);
        i++;

    }
   
    for(i = 0; i< MAXSIZE; i++)
    {
        num[i] = (int(data[i]) - 48);
    }
    printf("______________________");
    printf("%s\n",data);
    printf("______________________");
    fclose(fp);



    for (i = 0; i < MAXSIZE; i++)
    {
        double leftweiquan = 1;
        double rightweiquan = 0.1;
        double flag = 1.0;
        left = 1;
        right = 1;
        sum = 0.0;
        if (num[i] == -2)
        {
            while(num[i - left]>=0 && num[i - left]<=9 && (i-left) >= 0)
            {   
                sum+= ((num[i - left])) * leftweiquan*1.0;
                leftweiquan *= 10;
                left++;
            }
            while(num[i + right] >= 0 && num[i+right] <= 9)
            {
            
                sum+=((num[i + right]))*rightweiquan*1.0;
                rightweiquan /= 10;
                right++;
            }
            result[t] = sum;
            t++;
        }
    }
}
2013-03-06 23:53
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
有没有考虑第一行的:txt(数据):

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-03-07 07:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
愣没看懂你想干什么,尤其是 for (i = 0; i < MAXSIZE; i++) 开始

你直接说你想干什么吧,让别人帮你写一下。从你前面的代码来看,凭自己努力成功的几率不高。
2013-03-07 08:55
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
收藏
得分:0 
回复 2楼 pauljames
原始数据中并没有这些文字 原始数据只有数据没有文字
2013-03-07 10:37
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
收藏
得分:0 
回复 4楼 waja
从txt文件中读入数据,并将这些字符数据转化为浮点型数据,用一个数组来存储这些数据
2013-03-07 10:39
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
收藏
得分:0 
自己顶一下
2013-03-07 10:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
以下是引用waja在2013-3-7 10:39:35的发言:

从txt文件中读入数据,并将这些字符数据转化为浮点型数据,用一个数组来存储这些数据

你看这代码是否符合你的需求
程序代码:
#include <stdio.h>

#define ROW 8
#define COL 23

int main()
{
    double result[ROW][COL];

    // 打开文件
    const char* filename = "data.txt";
    FILE* fp = fopen( filename, "rt" );
    if( !fp )
    {
        printf( "ERROR 1\n" );
        return 1;
    }

    // 从文件内容读入数组
    {
        size_t i;
        for( i=0; i<ROW*COL; ++i )
        {
            if( 1 != fscanf(fp,"%lf",&result[i/COL][i%COL]) )
                break;
        }
        fclose( fp );
        if( i != ROW*COL )
        {
            printf( "ERROR 2\n" );
            return 1;
        }
    }

    // 将数组内容输出到屏幕
    {
        size_t i;
        for( i=0; i<ROW*COL; ++i )
            printf( "%.3f%c", result[i/COL][i%COL], (i+1)%COL==0?'\n':'\t' );
    }

    return 0;
}

2013-03-07 11:08
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
收藏
得分:0 
回复 7楼 rjsp
谢谢
2013-03-07 18:23
快速回复:这个程序为什么在读文件时候读不全数据?
数据加载中...
 
   



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

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