2 tach1bana Tach1banA 于 2015.06.22 15:47 提问

【C++】各位大神来帮忙看看这里

#include
struct CandyBar
{
char brand[30];
double weight;
int heat;
};

void set(CandyBar & cb,char * b="Millennium Munch",double w=2.85,int h=350);
void show(const CandyBar & cb);

int main()
{
using namespace std;
CandyBar cb;
cout<<"是否重设CandyBar?(Y/N)";
char ch;
cin>>ch;
if(ch=='Y'||ch=='y')
{
cout<<"\n品牌:";
char b[30];
cin.getline(b,30);
cout<<"\n重量:";
double w;
cin>>w;
cout<<"\n热量:";
int h;
cin>>h;
set(cb,b,w,h);
show(cb);
}
else if(ch=='N'||ch=='n')
{
cout<<endl;
set(cb);
show(cb);
}
else
cout<<"\n傻逼!";
cin.get();
cin.get();
return 0;
}

void set(CandyBar & cb,char * b,double w,int h)
{
怎么将b赋值给cb.brand?
cb.weight=w;
cb.heat=h;
}

void show(const CandyBar & cb)
{
using std::cout;
using std::endl;
cout<<endl<<cb.brand
<<endl<<cb.weight
<<endl<<cb.heat<<endl;
}

卡在赋值那里了 改了很久都没改对 要么类型不匹配要么不是左值 主要是不知道怎么用
new来分配

2个回答

oyljerry
oyljerry   Ds   Rxr 2015.06.22 15:50

用strcpy复制数据。

Tach1banA
Tach1banA 只能用strcpy吗。。。如果要用new的话怎么写啊。。
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.22 21:01

char brand[30];
->
char * brand;
这样可以直接赋值。

Tach1banA
Tach1banA 真的诶 可是为什么数组就不行啊 同样赋的是地址啊
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片