necesito ayuda con c++
NECESITO AYUDA URGENTE PARA PODER DECIFRAR UN ERROR QUE NO SE QUE PUEDE SER. EL CODIGO ES EL SIGUIENTE Y ES EL ÚNICO ERROR QUE ME DA:
int main()
{ // AQUI ME DA EL ERROR
Tarticulo articulos[20];
int opc,num;
articulos[2].nombreArticulo="zapato";
articulos[2].precioArticulo=48.18;
articulos[15].nombreArticulo="gorra";
articulos[15].precioArticulo=21.45;
cout<<"Introduce el articulo"<<endl;
getline(cin,nombre);
num=IntroducirArticulo(articulos,nombre);
if (num=1){
cout<<"El articulo ya existe"<<endl;
}
else{
cout<<articulos[7].nombreArticulo;
cout<<" ";
cout<<articulos[7].precioArticulo;
cout<<endl;
cin>>opc;
}
}
EL ERROR QUE ME DA ES EL SIGUIENTE:
"parse error before `{' token"
int main()
{ // AQUI ME DA EL ERROR
Tarticulo articulos[20];
int opc,num;
articulos[2].nombreArticulo="zapato";
articulos[2].precioArticulo=48.18;
articulos[15].nombreArticulo="gorra";
articulos[15].precioArticulo=21.45;
cout<<"Introduce el articulo"<<endl;
getline(cin,nombre);
num=IntroducirArticulo(articulos,nombre);
if (num=1){
cout<<"El articulo ya existe"<<endl;
}
else{
cout<<articulos[7].nombreArticulo;
cout<<" ";
cout<<articulos[7].precioArticulo;
cout<<endl;
cin>>opc;
}
}
EL ERROR QUE ME DA ES EL SIGUIENTE:
"parse error before `{' token"
Hola Lucas;
En el fragmento de código que muestras no parece haber un error que pueda señalarse antes de la primera }, quizás esté en las clases, estructuras o funciones que defines antes (que no muestras). Fíjate si no has puesto algún ";" de más o de menos.
Lo que sí me resulta sospechoso es dende dices:
> articulos[2].nombreArticulo="zapato";
si nombreArtículo es una "string" de la biblioteca estándar está bien, aunque si hubieras definido a nombreArtículo como char* nombreArtículo (o como char nombreArticulo[80], por ejemplo), la asignación tendrías que hacerla a través de strcpy() u otra función parecida.
También,
> if (num=1){
aquí seguramente habrás querido decir
if (num == 1) {
para evitar este error, que suele ser muy frecuente, muchos compiladores muestran una "warning", y muchos programadores prefieren escribir
if( 1 == num) {
ya que si se olvidaran de escribir uno de los "=", el compilador lo indicaría como error: no se puede asignar un nuevo valor a una constante.
Alejandro
En el fragmento de código que muestras no parece haber un error que pueda señalarse antes de la primera }, quizás esté en las clases, estructuras o funciones que defines antes (que no muestras). Fíjate si no has puesto algún ";" de más o de menos.
Lo que sí me resulta sospechoso es dende dices:
> articulos[2].nombreArticulo="zapato";
si nombreArtículo es una "string" de la biblioteca estándar está bien, aunque si hubieras definido a nombreArtículo como char* nombreArtículo (o como char nombreArticulo[80], por ejemplo), la asignación tendrías que hacerla a través de strcpy() u otra función parecida.
También,
> if (num=1){
aquí seguramente habrás querido decir
if (num == 1) {
para evitar este error, que suele ser muy frecuente, muchos compiladores muestran una "warning", y muchos programadores prefieren escribir
if( 1 == num) {
ya que si se olvidaran de escribir uno de los "=", el compilador lo indicaría como error: no se puede asignar un nuevo valor a una constante.
Alejandro
Yo también uso el Dev-C++ y me da un error como el tuyo en un lugar donde, en teoría, está todo bien. No sé si será cosa del programa este (o de su configuración)
A ver si alguien puede ayudarnos
A ver si alguien puede ayudarnos
mira haber si es que tienes que retornar un valor
return 0 o mejor no retornes valor void main(){
return 0 o mejor no retornes valor void main(){
Como ya te dijeron,es mejor que muestres la estructura de la clase o estructura,en cuanto a lo que muestras,que yo sepa debe ser: cin.getline(nombre) no getline(cin,nombre);
