问题描述
- 这代码有什么问题,为什么只有第一行能储存
- void Car::scan()
{
cin>>car_line>>a>>countTime;
int k=0;
if(car_line=='A'||car_line=='B')
{
for(int i=countAB;i<countTime;i++)
{
car[i].car_line=car_line;
car[i].countTime=k+1;
judgeAB(i);
k++;
countAB++;
}
}
if(car_line=='C')
{
for(int i=countC;i<countTime;i++)
{
car[i].car_line=car_line;
car[i].countTime=k+1;
judgeC(i);
k++;
countC++;
}
}
}void Car::prinf1()
{
for(int i=0;i<16;i++)
{
cout<<car1[i].carID<<""t""<<car1[i].driver<<""t"";
switch3(i);
}
}这代码有什么问题,为什么只有第一行能储存
例如我输入
A 8 4
A 9 4
A 10 4
这样只有A 8 4这一行存储了,后面的都没有,而且如果我输入的东西里面含C的话就全部不能存储了
各位大神帮帮忙,我改了一天了,都弄不出来
解决方案
建议先排版,不然没人看
解决方案二:
void Car::prinf1()这一段改成下面这一段
void Car::scanf()
{
cout<<""请输入出车路线、出车时间及出车数量(A 0 0停止输入):""<<endl;
for(int i=0;i<300;i++)
{
scan();
if(a==0)
break;
}
}
解决方案三:
急需啊,求各位大神帮帮忙,谢谢啦
解决方案四:
car[i].car_line=car_line;
这样只是让car_line指向了car_line;所有的对象的这个字段都指向了同一个字符串地址。
你应该用new创建新的字符串,再拷贝
时间: 2024-11-03 10:29:59