我有一个包含两个数组的结构。我正在尝试打印出每个数组的内容,但是当我执行所有操作时,无论字符串是什么,浮点数都是零,无论我打印哪个元素。
#include <iostream>
using namespace std;
struct menuItem
{
string breakfastItem[7];
float itemPrice[7];
}dish;
void setMenu()
{
dish.breakfastItem[0]= "Plain Eggs";
dish.itemPrice[0]= 1.45;
dish.breakfastItem[1]= "Bacon and Eggs";
dish.itemPrice[1]=2.45;
dish.breakfastItem[2]="Muffin";
dish.itemPrice[2]=0.99;
dish.breakfastItem[3]="French Toast";
dish.itemPrice[3]=1.99;
dish.breakfastItem[4]="Fruit Basket";
dish.itemPrice [4]=2.46;
dish.breakfastItem[5]="Cereal";
dish.itemPrice[5]=0.69;
dish.breakfastItem[6]= "Coffee";
dish.itemPrice[6]=.50;
dish.breakfastItem[7]="Tea";
dish.itemPrice[7]=0.75;
}
int main()
{
cout << dish.breakfastItem[0];
cout << dish.itemPrice[0];
}
答案 0 :(得分:2)
首先,为了让setMenu()
中的代码运行,您需要调用该函数。
int main()
{
setMenu();
cout << dish.breakfastItem[0];
cout << dish.itemPrice[0];
}
其次
dish.breakfastItem[7]="Tea";
dish.itemPrice[7]=0.75;
在您编写过去的数组时,是未定义的行为。大小为7的数组的索引范围为[0,6]