c++ 结构体跨文件调用问题

文件A:

typedef struct DingWei_data {
    string describe_DW;
    string keyw;
    int x1;
    int y1;
    int jt_long;
    int jt_width;
};

文件B:

DingWei_data dingwei_all[200];

//主函数

int main ()
{
    string a1 = "\\dingwei.txt";
    char  c[_MAX_PATH];
    string b;
    char *ab;
    _getcwd(c, sizeof(c));
    b = c;
    a1 = b + a1;
    ab = &a1[0];
    string add[100];

    Read_write_data RWD(ab, add);
    cout << dingwei_all[1] << endl;
    return 0;
    }

我已经extern结构体了,为什么cout<<dingwei_all[1]<<endl这里会报错的
这里报的是:表达式必须指向完整对象类型的指针

dingwei_all是一个结构体数组,可以输出结构体中的变量,不能直接输出

可以考虑重载输出流运算符<<

DingWei_data& operator<<(ostream& o; const DingWei_data& d) {return o << /*此处放置你要输出的东西*/}

这样你的代码就能运行了