Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/03/2007, 21:44
blackwind
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 21 años, 1 mes
Puntos: 7
Re: leer fichero con c++

para leer el archivo en C++, esta es mi forma favorita......

Código:
// estructura que contenga la cantidad de nombres por linea, si fueran mas, solo vas agregando
struct CNames
{
	std::string a,b;
};

// sobrecargamos el operador >> para cortar un poco de codigo
istream& operator>>(istream& is, CNames& n) {
  return is >> n.a >> n.b;
}

// metodo que lee el archivo
void ReaderFile(string strName )
{	

	// vector que contendra la lista de nombres
       std::vector<CNames> vNames;
       
       // abres el archivo y verificas si hay error
	std::ifstream in(strName);
        if( !in )
        { // error }
            
	std::string line;
	CNames name;
	while( std::getline(in, line ) )
	{
		// checas si pudo leer los 2 nombres
               if( std::stringstream(line) >> name)
                        { // si es asi, los agregas a la lista			                                      

                           vNames.push_back(name);
                         }
	}

	in.close(); // cierras el archivo

        // aqui los mande a imprimir para ver que si leyo todo
	for( int i = 0; i < vNames.size(); i++ )
	{
		std::cout << vNames[i].a << endl;
		std::cout << vNames[i].b << endl;
	}	

}
ya con eso tiene una lista con todos los nombres por separado, solo seria cuestion de que los guardes en un archivo, lo cual ya es una tarea muchisimo mas sencilla....

p.d: normalmente no hubiera puesto el codigo, pero esta forma me parece bastante sencilla y optima, y la quise compartir por si a alguien le gusta, ademas de que con minimas modificaciones puede adaptarse para archivos mas complejos, por ejemplo que contega en una linea (aleatoria) muchos numeros, en otra un string...etc....

saludos,

Última edición por blackwind; 18/03/2007 a las 21:49