He creado un array de cadenas en C++, con las cadenas como punteros a caracter (no con ancho fijo).
Hago un bucle para que el usuario introduzca cada una de las cadenas, y he probado de varias maneras:
- cin >> array[i];
- cin.getline(array[i],10);
- con una variable intermedia y luego utilizando strcpy.
La única manera que me funciona, cuando muestro todos los valores resulta que ha introducido en todas las posiciones la última cadena que meto.
Por favor, si podéis echarme un cable os lo agradezco un montón.
¡Un saludo y gracias de antemano!
Aquí dejo el código simplificado (funciona, pero mal):
Código:
#include <iostream.h> #include <string.h> #include <fstream.h> const int TAMANO=4; main() { char *familia[TAMANO]; char cadena[10]; for (int i=0; i<TAMANO; i++) { cout << "Introduce el nombre de la familia de la planta " << i+1 << " "; fflush(stdin); cin.getline(cadena,10); familia[i]=cadena; //strcmp(familia[i],cadena); //cin.getline(familia[i],10); //cin >> familia[i]; cout << familia[i]; } for (int k=0; k<TAMANO; k++) { cout << familia[k]; } system("pause"); }