24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2262  |  回复: 4
本帖产生 1 个 程序强帖 ,点击这里进行查看

yixx

木虫 (小有名气)

[求助] 从txt文件读数据到二维数组

各位大侠,请问这样从txt文件读入数据到二维数组中去?txt文件格式如下:
4.1822        10.69        -4.21E-02        -4.24E-02
-1.5663        11.334        -3.30E-02        -4.24E-02
-4.8144        9.7183        -2.39E-02        -4.24E-02
-6.7684        7.388        -1.49E-02        -4.23E-02
-7.9376        5.3832        -5.85E-03        -4.23E-02
-8.689        4.2216        3.20E-03        -4.23E-02
-9.2453        4.1478        1.23E-02        -4.22E-02
-9.6071        5.1571        2.13E-02        -4.22E-02
-9.4991        6.3858        3.04E-02        -4.22E-02
-9.8573        5.4008        3.94E-02        -4.21E-02
-14.707        0.33991        4.85E-02        -4.21E-02
6.4428        9.4314        -4.22E-02        -3.34E-02
0.28605        8.2966        -3.30E-02        -3.33E-02
。。。。。。
数据比较大,有几万行。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


jjdg(程序强帖+1): 辛苦了 2011-05-04 17:16:50
dubo(金币+1): 程序很好,但是一次读几万行,这样是不行的,LZ要转变下思路 2011-05-22 19:07:00
yixx(金币+4): 2011-06-23 07:39:24
CODE:
#include
#include
#include

using namespace std;

#define LINE 1000

int main(int args, char* argv[])
{
    float data[LINE][4];
   
    ifstream in("data.txt");
        string str;
       
        int num = 0;
       
        while (getline(in, str))
        {
          if (str.empty())
             continue;
         
          istringstream is(str);
         
          float a, b, c, d;
          is >> a >> b >> c >> d;
          data[num][0] = a;
          data[num][1] = b;
          data[num][2] = c;
          data[num][3] = d;
         
          num++;
     }
     
     for(int i=0;i          printf("%.6f\t%.6f\t%.6f\t%.6f\n",data[i][0],data[i][1],data[i][2],data[i][3]);
     
     system("PAUSE");
     return 0;
    }

结果
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2011-05-04 15:03:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

★ ★
余泽成(金币+2): 谢谢参与应助! 2011-05-04 22:51:05
yixx(金币+1): 我想将ansys的结果加到fluent中去,还没找到合适的方法,先这样看看行不行,不行再找别的方式。 2011-05-05 08:25:21
几万行的数据,真的,没必要一次都读进来。
您到底要做什么?
设计设计,
读一些,处理一下;再读一些,再处理一下。
3楼2011-05-04 15:42:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★
余泽成(金币+2): 谢谢参与应助,欢迎常来程序语言版! 2011-05-04 22:51:24
引用回帖:
Originally posted by yalefield at 2011-05-04 15:42:40:
几万行的数据,真的,没必要一次都读进来。
您到底要做什么?
设计设计,
读一些,处理一下;再读一些,再处理一下。

以一个double有8byte,一个内存页面4096byte计算,一次至少也该读512个数据才对得起这一次分配的内存页面呃~
每次处理一行数据一样需要缓冲,标准IO至少会缓冲一个页面的数据,打开并一次性读取之后关闭不是更省事?
漩涡的中心有一块空地,空空的。
4楼2011-05-04 17:25:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yixx

木虫 (小有名气)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-05-22 19:08:51
非常感谢二楼的程序,
5楼2011-05-05 08:28:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yixx 的主题更新
信息提示
请填处理意见