读一个文件,文件是表结构的,我想把每一条记录都用一个数组存起来,但是由于字段的数据类型不统一,有的是int ,有的char*,有的是对象,该如何处理,请各位高手给各意见

解决方案 »

  1.   

    都包含上,并表明是什么类型
    enum _type
    {
      TypeInt;
      TypeChar;
      TypeObject;
    };typedef struct _tag_record
    {
      _type type;
      int num;
      char *str;
      CXXObject obj;
    }Record;
      

  2.   

    表结构的意思就是:文件里面先是字段的描述,完了后是记录,这样的结构.
    1楼,在普通c程序里面用variant,会不会出问题阿 !!
      

  3.   

    这个数组里面主要存int ,float double short 还有对象指针,如果用variant,该如何用阿,对象指针用什么类型的数表示阿 !
      

  4.   

    这个数组里面主要存int ,float double short 还有对象指针,如果用variant,该如何用阿,对象指针用什么类型的数表示阿 !
    =============
    你的数据当中会有对象指针吗?Variant也就是union,只不过是这是一个现成的通用的,不需要你进行重新定义。
      

  5.   

    variant 如何存储一个对象的指针阿
      

  6.   

    再用链表保存,STL或者MFC的相关类都可以的
      

  7.   

    你可以用类加上链表 
    1、首先定义一个类,类中包含你所有可能的数据类型 ,另外定义一个成员index,标记每次读上来的数据的类型 这个可以自己人为规定 ,比如读上来int 那么index存1,然后把数据存入 a中 .每次使用时先查index是什么类型,再从相应的类型中找数.
    class C**:...
    {
    public:
       int a;
       char *b;
       C**Object c;
      ...
      int index;//可以人为规定 1-int,2-char*....
    }
    2、在C***Dlg(如果是基于对话框的)类定义中定义1个链表 CList<C**,&C**>m_list;(需要包含C**的头文件)
    3  在你的从文件中读数的函数中 把每次度上来的数添加到链表中 (需要包含C**的头文件)
       比如你度上来是int 型
       C** temp;
      temp.index=1;
      temp.a=你读上来的数;
      m_list.AddTail(temp);
      这样就可以把你读到的数存入链表
    4  使用这些数时 从链表中取:
     int num=m_list.GetCount();
    for(int i=0;i<num;i++)//遍历链表
    {
      C** temp;
      POSITION npos=m_list.FindIndex();
      temp =m_list.GetAt(npos);
     if(temp.index==0)//整型
     {
     }
     ...
     
    }   
       
      
      

  8.   

    也可以使用stl list
    全用string表示
    大小规格不限
    用的时候在做转换