如何打印(cout)嵌套结构变量

How do I print (cout) a nested structures variables

我需要弄清楚如何使 "inside struct candybar" 的“struct 零食”能够输出,但我无法弄清楚。我在互联网上和我的教科书中都看过了,但找不到任何有用的东西。 另外我怎样才能使数组 array 成为一个动态的 array 使用 new? 任何帮助都会很大赞赏。谢谢

#include <iostream>
#include <string>
#include <math.h>
#include <iomanip>
using namespace std;


int main(){

struct candybar 
{
    char name[15];
    float weight;
    int calories;
    struct Snack
    {
        const char * name2 = "Mocha Munch";
        double weight2 = 200;
        int calories2 = 2;
    };
};
candybar array[3] = 
{
    {"Kit-kat", 2.3, 250},
    {"Hershey", 2.2, 252},
    {"Snicker", 2.5, 255},
};

cout << array[0].name << " " << array[0].weight << " " <<  array[0].calories << endl;
cout << array[1].name << " " << array[1].weight << " " << array[1].calories << endl;
cout << array[2].name << " " << array[2].weight << " " << array[2].calories << endl;
return 0;
}

结构内部的结构不是这样定义的。你想把定义移到结构的外面

struct Snack
{
    const char * name2 = "Mocha Munch";
    double weight2 = 200;
    int calories2 = 2;
};

struct candybar 
{
    char name[15];
    float weight;
    int calories;
    Snack snack;
};

现在您的 candybar 中有一个 Snack 类型的成员 snack 并且可以访问它,例如 array[0].snack.name2.

struct candybar
{
    char name[15];
    float weight;
    int calories;
    struct Snack
    {
        const char* name;
        double weight2;
        int calories2;
    };
    Snack snack;

};
candybar array[3] =
{
    {"Kit-kat", 2.3, 250, {"a", 100, 100}},
    {"Hershey", 2.2, 252,{"b", 200, 200}},
    {"Snicker", 2.5, 255,{"c", 300, 300}}
};