Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nolram en 6 Abril 2014, 16:34 pm



Título: archivo tipo txt ayuda???
Publicado por: nolram en 6 Abril 2014, 16:34 pm
ayuda estoy haciendo un programa y necesito leer un linea especifica de un archivo TXT
lo estoy leyendo con fstream.open...
en el archivo tengo lo siguiente.

perro grande
gato mediano
gorila
elefante
tigre
leon

necesito leer solamente una de las lineas puede ser cualquiera de ellas ... y guardarla en un arreglo
caracter por caracter es decir:

si la linea que se leyo es tigre necesito que la guarde asi
arreglo[0]= T;
arreglo[1]= I;
arreglo[2]= G;
arreglo[3]= R;
arreglo[4]= E;

y si es la primera linea:
arreglo[0] = P
arreglo[1] = E
arreglo[2] = R
arreglo[3] = R
arreglo[4] = O
arreglo[5] = " "
arreglo[6] = G
arreglo[7] = R
arreglo[8] = A
arreglo[9] = N
arreglo[10] = D
arreglo[11] = E

agradeceria cualquier respuesta o que me puedan guiar de como resolrver este problema 
MUCHAS GRACIAS....


Título: Re: archivo tipo txt ayuda???
Publicado por: rir3760 en 6 Abril 2014, 17:23 pm
La forma mas sencilla consiste en leer el contenido del archivo linea por linea hasta alcanzar la indicada o llegar al final de este.

Utilizando la clase string es mas o menos así:
Código
  1. ifstream in("Entrada.txt");
  2.  
  3. if (in){
  4.   cout << "Numero de linea a buscar (1 .. N): ";
  5.   unsigned pos;
  6.   cin >> pos;
  7.  
  8.   string linea;
  9.   unsigned i = 0;
  10.   while (i != pos && getline(in, linea))
  11.      i++;
  12.   in.close();
  13.  
  14.   if (i == pos)
  15.      cout << "Linea " << i << ": \"" << linea << '\"' << endl;
  16.   else
  17.      cout << "Error o el archivo contiene menos lineas" << endl;
  18. }

Una vez obtienes la linea indicada si en base a esta deseas obtener una cadena "a la C" puedes utilizar la función miembro c_str (http://www.cplusplus.com/reference/string/string/c_str/).

Un saludo