Leer fichero y guardar en variables

Iniciado por Joaqqinn, 17 Diciembre 2015, 20:52 PM

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

Joaqqinn

Buenas necesito si me pueden ayudar ya que estoy trabado con un codigo. Se como leer un archivo pero la complicacion seria que necesito leerlo y con lo que dice en cada linea guardarlo en una variable para poder utilizarlo luego en otra funcion. El fichero consta de nombres por cada renglon y necesito leerlo y guardarlo para luego poder utilizarlo. Tal vez me estoy delatando y es muy facil y yo todavia estoy muy verde en c++ jaja , espero me puedan ayudar saludos

0xFer

Código (cpp) [Seleccionar]

#include <fstream>
#include <string>

int main()
{
   std::ifstream file("NomFichero.txt");
   std::string linea;
   while (std::getline(file, linea))
   {
       // Ahora puedes hacer lo que sea con "linea".
   }
}


en la variable "linea" se va guardando ese dato que necesitas, el nombre.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Joaqqinn

Primero que nada gracias. El problema no seria que linea siempre va a guardar una sola variable? la ultiam digamos .. Porque yo necesito que por ejemplo lea la primer linea  y se guarde , lea la segunda y se guarde por ejemplo en linea2 y asi sucesivamente.

0xFer

En C++ puedes usar tranquilamente un vector de string donde irás guardando todas las lineas.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Joaqqinn

Disculpa que te moleste, pero me podrias decir como quedaria el codigo con el vector?

furciorifa

Amigo se resuelven dudas puntuales no se hacen tareas, pero en fin lo más fácil es que uses un vector, como dice el compañero vas almacenando secuencialmente el archivo y despues ese vector lo mandas a una función y listo.

Orubatosu

Un inciso al respecto, porque aquí a veces se "lia" la cosa.

Una opción que tienes, es que asumes una longitud límite de líneas, y creas una table de "string" con ese número.

El "problema" es que debes de poner algún tipo de marca al final de la lectura del fichero, ya que ese fichero podría contener líneas en blanco.

El otro es usar lo que es realmente un vector, que es un contenedor de la STL (Standar Template Library) y el uso de esos contenedores es realmente útil, pero asume que tienes un conocimiento algo mas avanzado de C++ (un poquito mas, nada del otro barrio)

Lo digo porque a menudo se llama "vector" a una tabla, pero en C++ "Vector" es una contenedor que usamos invocando a la librería del mismo nombre.

Para usar una table de cadenas de caracteres (de string para entendernos) la defines primero, creas un contador que se inicie en 0 y luego vas leyendo e incrementando ese contador, comprobando que no te excedes del tamaño máximo de esa tabla (o el programa puede cascar) y colocando al final en una fina una marca que indique que se ha terminado la lectura, para al usarlo posteriormente saber donde termina.
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998