Error a acceder a registro

Iniciado por seryioo, 23 Febrero 2016, 10:55 AM

0 Miembros y 1 Visitante están viendo este tema.

seryioo

Buenos días, tengo este registro:

Código (cpp) [Seleccionar]

struct TPregunta {
   string pregunta;
   int respuestaCorrecta;
   string resp1, resp2, resp3;
};


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 (cpp) [Seleccionar]

read>>p.pregunta[num]>>p.respuestaCorrecta[num]>>p.resp1[num]>>p.resp2[num]>>p.resp3[num];


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.

Eternal Idol

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).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

seryioo

#2
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.

Eternal Idol

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.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

seryioo

Perfecto tenías razón crack,  muchas gracias por todo!

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón