| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5467 人关注过本帖, 1 人收藏
标题:如何把txt文件中某一列储存到数组中?求大神相助
只看楼主 加入收藏
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
一个比较直观的debug的方法就是在程序的各个地方埋入printf
没有出现自己预期的结果就说明其他地方出问题了,
試行錯誤

The quieter you become, the more you can hear
2012-06-20 09:00
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
回复 10楼 惜小君
你用的什么编译环境,linux下没问题,vc的话不用修改就应该能过,如果用vs编译,请在最后加一句system("pause");不然窗口会一闪而过

努力改变一点点!!
2012-06-20 09:01
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
数据格式固定的话不仿这样:
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    double num[100]={0};
    int i = 0;
    FILE * fp = NULL;
    fp = fopen("xx.txt","r");
    char a[300];
    if(fp){
        while(!feof(fp)){
            fgets(a,80,fp);
            a[38]='\0';
            printf("%s\n",a+26);
            num[i++]=atof(a+26);
            printf("%f\n",num[i-1]);
        }
    }
}

★★★★★为人民服务★★★★★
2012-06-20 09:42
wwc386646959
Rank: 2
等 级:论坛游民
帖 子:29
专家分:82
注 册:2012-6-16
收藏
得分:0 
fscanf(FILE *pf, "%s %d %s %s %d %f %s %f %f %f %f %s", &变量.....)
如果不想去中间的某个数,就在%之后加个*号,比如%*s,这样就行了。也可以直接定位,fseek
2012-06-20 12:32
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:5 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
    char line[128];
    float num[100] = {0};
    int count = 0, i = 0;
   
    FILE *fin;
   
    fin = fopen("2.txt", "r");
    if(fin)
    {
        while(!feof(fin))
        {
            fgets(line, 128, fin);
            if(strcmp(line, "\n") != 0) //去空行
            {
                char *result = 0;
                int col = 0;
               
                result = strtok(line, " ");
                while(result != 0)
                {
                    if( col == 5) //取第六列数据
                    {
                        num[count] = atof(result);
                        count ++;
                        break;
                    }
                    col ++;
                    result = strtok(0, " ");
                }
            }
        }
        fclose(fin);
        
        for(i = 0; i < count; i++) //打印输出
            printf("%f\n", num[i]);
    }
    system("pause");
    return 0;
}

嘿嘿,codelite的代码对齐功能好象对本坛的帖子特别有用,蛮好的。

我们都在路上。。。。。
2012-06-20 12:34
快速回复:如何把txt文件中某一列储存到数组中?求大神相助
数据加载中...
 
   



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

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