我目前正在从事一个小型c ++项目,并且将其用作期末考试的练习,因此这可能是一个愚蠢的错误。所以...问题是,我声明了一个将其用作购物清单的结构数组,其中“ articulo”(指商品或产品)具有名称和数量字段。然后声明“ articulo”结构像一个名为“ ListaArticulos”的列表(即产品列表),最多包含100个产品。我的问题是,我在哪里弄乱这件事?我的意思是,我尝试将值存储在struct中,然后将它们保存到数组中,并且不断得到:'之前的预期主表达式。 “ cin >> articulo.prod;” 和“ cin >> articulo.cant;” 中的令牌。
#include <iostream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
typedef struct
{
char prod[30];
int cant;
}articulo;
typedef articulo ListaArticulos[100];
int nElem,opc;
int main()
{
while( opc!=3 ){
cout << "Bienvenido al la lista!." << "\n";
cout << "\n[1]. Agregar articulos a la lista.";
//cout << "\n[2]. Ver articulos actuales.";
//cout << "\n[3]. Salir del programa." << "\n";
cout << "\nElija una opción para continuar: ";
cin >> opc;
switch(opc)
{
default:
cout << "\nCuantos articulos?: ";
cin >> nElem;
ListaArticulos LA;
for(int i=0; i<nElem; i++){
cout << "Ingrese articulo " << i++ << ": ";
cin >> articulo.prod;
cout << "Ingrese cantidad: ";
cin >> articulo.cant;
LA[i] = articulo;
}
break;
}
}
return 0;
}
任何有关此的提示将不胜感激。谢谢大家!
答案 0 :(得分:0)
articulo
是一种类型。您想使用这种类型的变量。
用以下这些替换for
循环内的行:
cout << "Ingrese articulo " << i+1 << ": ";
cin >> LA[i].prod;
cout << "Ingrese cantidad: ";
cin >> LA[i].cant;
它将起作用。
我还要指出,您在i++
中使用cout
作了错字。您已经在i
中增加了for(int i=0; i<nElem; i++)
,所以这里不需要增加它。如果要以此方式打印1索引号,请使用i+1
,如图所示。
答案 1 :(得分:0)
articulo
是一种类型,而不是对象。
如果要写入元素LA[i]
,请这样做:std::cin >> LA[i].prod;
但是我真的很想建议您获得有关C ++的好书或教程。这段代码确实很糟糕。