[C con Clase] AYUDA URGENTE POR FAVOR!!!

Davidson, Steven srd4121 en njit.edu
Mar Ene 29 01:36:16 CET 2013


Hola Sara,

2013/1/28 Sara Castilla Guilllén <saricg en hotmail.es>

>  Hola, gracias por la información. He solucionado los errores de los que
> me habeis informado y corregido algunos más que me daban a la hora de
> compilar. Todavía me siguen saliendo estos errores (los adjunto en un
> archivo) y por más que cambio cosas no consigo solucionarlos. Adjunto de
> nuevo el programa para que podais verlo. Gracias de nuevo.
>
>
Bueno, no es cuestión de cambiar algo para que funcione, sino entender el
problema - el por qué no funciona - y resolverlo.

Veamos los errores y el código fuente:

* error: #error This file requires compiler and library support for the
upcoming ISO C++ standard, C++0x. This support is currently experimental,
and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.

Como usas algunas cosas del nuevo estándar de C++, llamado previamente
C++0x, pero ahora se llama C++11, tu compilador requiere que agregues la
opción del compilador: -std=c++0x. Cuando compiles, algunos otros errores
que mencionas desaprecerán.

* pr2.cpp:21: error: expected ‘;’ before ‘char’

struct TpInfopeli{
char protagonistas[10]
---->
El error está en que espera un punto y coma antes del 'char' siguiente. O
sea, escribe:
char protagonistas[10];
<----

char pelicula[5];
char cines[4];
}informacion[5];

* pr2.cpp:50: error: ‘i’ no se declaró en este ámbito
...

void InsertarPelicula(string TpCines[i], TpInfopeli &informacion);

El problema es que indicas 'i', la cual no ha sido declarada y por tanto el
compilador no sabe lo qué es, ni cómo tratarlo. Como está en la lista de
parámetros, debe ser solamente [], para crear un array.

* pr2.cpp:52: error: ‘i’ no se declaró en este ámbito
...

void BuscarPelicula (string TpCines[i], const string &pelicula, bool
&encontrado, TpInfopeli &informacion);

Aquí tienes el mismo problema de antes; escribe, [].

* pr2.cpp:81: error: expected primary-expression before ‘&’ token

case 0: informacion = LeerPelicula(TpInfopeli &informacion);

El error es que has escrito el prototipo de la función 'LeerPelicula()', en
lugar de invocarla. Debería haber sido,

case 0: informacion = LeerPelicula( informacion );

Sin embargo, esta función retorna un valor de tipo 'int' que intentas
asignar a una variable de tipo 'TpInfopeli'. Como no existe una definición
de asignar 'int' a 'TpInfopeli', se produce un error. Deberías revisar la
lógica que quieres plasmar aquí.

* pr2.cpp:82: error: no se puede pasar objetos de tipo ‘struct std::string’
que no es POD a través de ‘...’; la llamada abortará en tiempo de ejecución
...

InsertarPelicula(TpCines, informacion);
BuscarPelicula(TpCines, pelicula, encontrado, informacion);

Pasas 'TpCines' que es un objeto de tipo 'string' a ambas funciones cuando
esperan recibir arrays. Revisa lo que quieres hacer en realidad: pasar una
lista de cadenas o una sola cadena.

* pr2.cpp:100: error: ‘salir’ no se declaró en este ámbito

SalirDelPrograma(salir);

No has definido 'salir' y por tanto es un error usarlo.

* pr2.cpp:122: error: expected primary-expression before ‘;’ token

cin >> calificaciones;

'calificaciones' no es una variable sino un tipo enumerado. Deberías
aceptar otra variable como parámetro o podrías definir 'TpInfopeli' para
que contenga otro campo para las calificaciones.

* pr2.cpp:124: error: no se puede convertir ‘TpInfopeli’ a ‘int’ en return

return informacion;

Intentas retornar 'informacion' que es de tipo 'TpInfopeli' cuando dijiste
que iba a retornar un valor de tipo 'int'. Como no existe una conversión
entre 'TpInfopeli' a 'int', el compilador te marca un error.


Hay varios errores que no has corregido de la versión anterior del código
fuente.


Espero que esto te sirva.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130128/e1a880f5/attachment.html>


Más información sobre la lista de distribución Cconclase