我从一个文本里读出若干行数据,每行数据经打包后的个数都是一样的,都是13个char字符,每次把一行打包后,可以放在一个数组里面,变成如这样:txdata[13]={12,13,80,18,22,30,32,33,34,35,36,37,38};但是由于有好多行,并且每次打开文本获得的行数也不一样,所以我想生成个二维数组,Alltxdata[Line_Num][13];然后每当生成一行数据的时候,赋给Alltxdata[Line_Num][13];当然所有数据是要发送出去的,一条一条发。但是我不知道具体怎么写这个代码,请高手帮助,谢谢。long Line_Num;
............;//要读取的文本行数,代码会写
Alltxdata[Line_Num][13];//应该动态申请个二维数组吧,代码不会写.
for(int i=0;i<Line_Num;i++)
{
    ...........读取数据并每行打包,会写   
    txdata[13]={......};//得到每行数据打包后的值;
    Alltxdata[i][13]=txdata[13];//数组赋值不是这样吧?似乎应该循环13次,一对一赋值。代码不会写。
}Line_Num最好是long型的,因为代表行数,txdata[13]里面都是char字符型的,若实在弄不成二维数组形式,那么所有数据应该如何组织一下呢?
谢谢。

解决方案 »

  1.   

    一般要建立指针数组。 int **iArr;
    iArr=new int*[x];
    for(int i=0;i<x;i++)
    {
    iArr[i]=new int[y];
    for(int j=0;j<y;j++)
    {
    iArr[i][j]=i+j;
    }
    }释放要小心,逐个释放数组中的指针iArr[i]。最后才释放指针数组iArr。
    建议不用数组,使用二维容器代替。比如
    vector<vector<int> > 或 CArray <CArray<Elem_Type> >
      

  2.   

    用个list吧
    每个元素就是一行
    如果要清晰一些可以用一个结构体包一下你的一行数据
      

  3.   

    再告诉你一个办法,先定义一个结构的自定义类型
    typedef struct _MY_DATA 
    {
        txdata[16]; //不用13,用16。
    }MY_DATA;然后
    MY_DATA AllTextData[100]; //这就是你要的多少条,或者你 new 也可以。使用时 
    for(int i=0 i<100; i++)
    {
        for(int j=0; j<13; j++)
        {
            AllTextData[i].txdata[j] = XX;
        }
    }
    这个好懂吧?
      

  4.   

    编译老是出错,通不过去,卡了一个星期了,在网上找的其它二维数组初始化代码:
    int **array;
    array=new int *[10];
    for(int i=0;i<10;i++)
             array[i]=new int [5];这段代码在VC6.0里也编译不过去,