C++ 如何将数据存储到3D网格中并在c+中打印+;

C++ 如何将数据存储到3D网格中并在c+中打印+;,c++,C++,我正在尝试创建一个3D网格,将数据存储到其中并打印存储的信息。但是,它没有打印任何内容。看起来它正在存储信息,但没有打印。我可以打印p.a p.b p.c,但不能打印三张。任何帮助 typedef struct { double a; double b; double c; } MYGR; void My2DGrid() { int i, j, k =0; MYGR THREEG[5*5*

我正在尝试创建一个3D网格,将数据存储到其中并打印存储的信息。但是,它没有打印任何内容。看起来它正在存储信息,但没有打印。我可以打印p.a p.b p.c,但不能打印三张。任何帮助

    typedef struct {

      double a; 
      double b;
      double c; 
    } MYGR;

    void My2DGrid()
    {
        int i, j, k =0;
        MYGR THREEG[5*5*5];
        for ( i = 0; i < 5 ; i++) { 
            for ( j = 0; j < 5 ; j++) { 
                for (k = 0; k < 5; k++) { 
                    MYGR p;
                    p.a =1; p.b=2, p.c=3;
                    THREEG[i+5*j+5*5*k] = MYGR(p); 
                    cout << i<< "\t" <<j << "\t" << k <<"\t" << THREEG[i+5*j+5*5*k] << endl; 
                }
            }
        }
    }

int main()
{
My2DGrid();
}
typedef结构{
双a;
双b;
双c;
}MYGR;
void My2DGrid()
{
int i,j,k=0;
MYGR THREEG[5*5*5];
对于(i=0;i<5;i++){
对于(j=0;j<5;j++){
对于(k=0;k<5;k++){
mygrp;
p、 a=1;p.b=2,p.c=3;
三个[i+5*j+5*5*k]=MYGR(p);
你能做作业吗

THREEG[i+5*j+5*5*k] = MYGR;
它(因为您没有为MYGR定义构造函数)将未定义的(随机)值分配给您的数组。我认为您的意思是:

THREEG[i+5*j+5*5*k] = p;
您也没有定义用于打印结构的运算符,例如:

std::ostream& operator<<(std::ostream &os, const MYGR &p)
{
  os << p.a << " " << p.b << " " << p.c;
  return os;
}

std::ostream&operatorPlease以及如何创建一个。然后编辑您的问题,告诉我们您显示的代码有什么问题。您是否有生成错误?崩溃?意外结果?其他问题?“不打印任何内容”已经是有价值的信息(真的不是开玩笑!),但是请显示一个完整的代码,包括一个main…因为这里显示的代码不会做任何事情(在修复了最明显的代码之后),至少现在我们有了一个,但是您仍然没有告诉我们问题是什么。我知道问题是什么(使用显示的代码),但在您将问题更新为之前,我不会告诉您。不,您没有清楚地解释问题。“不显示任何内容”本身不是一个很好的问题描述。您是否遇到生成错误(如果您这样做,那么会发生什么)?你会崩溃吗?它会一直运行到最后,但没有显示你期望的结果吗?请详细说明!问题在此期间发生了变化,但
THREEG[i+5*j+5*5*k]=MYGR;
不会分配任何内容,因为它不可编译,非常感谢您的时间。我如何打印三个G的内容?@snoze:您是否尝试过嵌套
循环来打印数组的内容?解决它。.感谢大家宝贵的时间。.应该是三个G[I+5*j+5*k].a或.b或。c@snoze.部分问题可能也使用C“TySufFF”HACK。在C++中,不应该使用TyPulf,只是“StuttMyGr{}”;C++类型的系统与C不同,所以不需要使用TyPulf来在C++中写“MyGr SuxE[…]”。