项添加到数组中,但所有项都显示上次输入的详细信息

  • 本文关键字:显示 详细信息 添加 数组 c++
  • 更新时间 :
  • 英文 :


我今天只是写了这段代码,因为我的老师告诉我,嗯…这是一个关于我想要一本书的颜色的问题(只有3个选项,红色,绿色和蓝色),之后将对这些书进行注册(询问标题,作者和出版年份),如果我选择红色,选择2本,如果我选择绿色,选择3本,如果我选择蓝色,选择4本。

问题是,当显示最终结果时,代码忽略了除最后一个输入外的所有输入,并且该输入复制了自己,有人能帮助我吗?

代码如下:

#include<iostream>
using namespace std;
enum Color{
rojo,verde,azul
};
struct libro{
string bookNumber;
Color color;
};
int main(){
string t,au,a;
int color, bookNumber;
cout<<"Seleccione el color del libro, 0. Rojo, 1. Verde, 2. Azul: ";
cin>>color;
switch(color){
case rojo:
bookNumber = 2;
break;
case verde:
bookNumber = 3;
break;
case azul:
bookNumber = 4;
break;
default:
cout << "Opción incorrecta" << endl;
break;
}
for(int i=0;i<bookNumber;i++) {
cout <<"Introduce el titulo del libro " <<i+1<<": "<<endl;
cin>>t;
cout <<"Introduce el autor del libro "<<i+1<<": "<<endl;
cin>>au;
cout <<"Introduce el anio del libro " <<i+1<<": "<<endl;
cin>>a;
}
for(int i=0;i<bookNumber;i++){
cout <<"t"<<"Titulo: "<<t<<endl;
cout <<"t"<<"Autor: "<<au<<endl;
cout <<"t"<<"Anio: "<<a<<endl;
switch(color){
case rojo: 
cout<<"t"<<"Color: Rojo" <<endl; break;
case verde:
cout<<"t"<<"Color: Verde" <<endl; break;
case azul:
cout<<"t"<<"Color: Azul" <<endl; break;
}
}
}

我将在这里留下一个示例,说明执行

时会得到什么:
Seleccione el color del libro, 0. Rojo, 1. Verde, 2. Azul: 2
Introduce el titulo del libro 1: 
ABS
Introduce el autor del libro 1: 
ABS
Introduce el anio del libro 1: 
2003
Introduce el titulo del libro 2: 
BCA
Introduce el autor del libro 2: 
BCA
Introduce el anio del libro 2: 
2005
Introduce el titulo del libro 3: 
WWW
Introduce el autor del libro 3: 
WWW
Introduce el anio del libro 3: 
4444
Introduce el titulo del libro 4: 
PPP 
Introduce el autor del libro 4: 
PPP
Introduce el anio del libro 4: 
8788
Titulo: PPP
Autor: PPP
Anio: 8788
Color: Azul
Titulo: PPP
Autor: PPP
Anio: 8788
Color: Azul
Titulo: PPP
Autor: PPP
Anio: 8788
Color: Azul
Titulo: PPP
Autor: PPP
Anio: 8788
Color: Azul

在您获得el titlo、el autor、el anio的循环中,您每次在循环中都要覆盖't'、'au'和'a'变量。你需要把这些变量变成数组或向量。

最新更新