问题描述
- 【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来分配
解决方案
用strcpy复制数据。
解决方案二:
char brand[30];
->
char * brand;
这样可以直接赋值。