Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: seryioo en 23 Febrero 2016, 10:55 am



Título: Error a acceder a registro
Publicado por: seryioo en 23 Febrero 2016, 10:55 am
Buenos días, tengo este registro:

Código
  1. struct TPregunta {
  2.    string pregunta;
  3.    int respuestaCorrecta;
  4.    string resp1, resp2, resp3;
  5. };
  6.  

y estoy intentando pasar de un fichero al registro la información correspondiente controlada por un numero, este número controla el acceso a la pregunta 1,2,3...

Uso:
Código
  1. read>>p.pregunta[num]>>p.respuestaCorrecta[num]>>p.resp1[num]>>p.resp2[num]>>p.resp3[num];
  2.  

Pero el compilador me da error en esta parte "p.respuestaCorrecta[num]"

Estoy accediendo bien al registro?

Gracias.



El enunciado es este, por si os resulta más sencillo:

Implementar un subprograma denominado leePregunta que reciba por parámetro el nombre
de un fichero y un número natural. Este fichero contendrá una serie de preguntas y sus posibles
respuestas en el siguiente formato (cada pregunta o respuesta ocupan una sola línea):
pregunta 1
nº respuesta correcta
respuesta 1
respuesta 2
respuesta 3
pregunta 2.
...

El subprograma también recibirá por parámetro el número de la pregunta que se quiere leer y
devolverá un parámetro de salida con los datos de la pregunta correspondiente en el fichero
almacenado en una estructura del tipo TPregunta.


Título: Re: Error a acceder a registro
Publicado por: Eternal Idol en 23 Febrero 2016, 12:17 pm
Supongo que en realidad queres hacer p[num].campo, lo otro no tiene sentido, respuestaCorrecta es un entero y no un array (los otros campos tampoco son arrays).


Título: Re: Error a acceder a registro
Publicado por: seryioo en 23 Febrero 2016, 13:02 pm
Hola, gracias por contestar.

Si hago p[num].pregunta en vez de p.pregunta[num] me tira error el compilador
(error: no match for 'operator[]' in 'p[num]'|)

Igual no lo estoy haciendo bien... No me aclaro demasiado con el enunciado...  :(



Me acabo de aclarar y he visto que lo que quería estaba mal.
Pensaba que dentro del registro podía almacenar varias preguntas de la manera que comentaba, pero para eso necesito un array de registros, como bien dices.

Lo que pasa es que no puedo tocar el registro   ya que forma parte del enunciado.


Título: Re: Error a acceder a registro
Publicado por: Eternal Idol en 23 Febrero 2016, 14:33 pm
No hace falta tocar TPregunta, solamente declarar un array de ese tipo.

TPregunta p[120]; por poner un ejemplo, ahora no se si lo tenes que implementar con memoria dinamica o no.


Título: Re: Error a acceder a registro
Publicado por: seryioo en 23 Febrero 2016, 21:42 pm
Perfecto tenías razón crack,  muchas gracias por todo!


Título: Re: Error a acceder a registro
Publicado por: Eternal Idol en 23 Febrero 2016, 22:14 pm
De nadas  ::)