elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [c++] Problema con la lectura de ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [c++] Problema con la lectura de ficheros  (Leído 1,713 veces)
chihue

Desconectado Desconectado

Mensajes: 5


Ver Perfil
[c++] Problema con la lectura de ficheros
« en: 28 Diciembre 2014, 11:21 am »

Tengo un archivo llamado "clientes.txt" donde tengo almacenada cierta info. Tengo que leerla a un vector y he echo un programa tal que así:

Código:
struct cliente{
int identificador;
string c;
string nombre;
string direccion;
string correo;
string ciudad;
};

const int MaxClientes = 1000;
typedef cliente VecClientes [MaxClientes];

int main (){
int tam=0, i;
ifstream f;
VecClientes v;
f.open("clientes.txt");
  if (f.fail())
  cout << "Error abriendo fichero."<< endl;
  else {
  while (!f.eof()){
f >> v[tam].identificador;
getline (f,v[tam].c);
getline (f,v[tam].nombre);
getline (f,v[tam].direccion);
getline (f,v[tam].correo);
getline (f,v[tam].ciudad);
tam++;
}
  f.close();
}

for (i=0; i<tam; i++){
cout <<"Identificador: "<< v[i].identificador<<endl;
cout <<"NIF: "<<v[i].c<<endl;
cout <<"Nombre: "<<v[i].nombre<<endl;
cout <<"Correo: "<<v[i].correo<<endl;
cout <<"Direccion: "<<v[i].direccion<<endl;
cout <<"Ciudad: "<<v[i].ciudad<<endl;
}

system ("PAUSE");
return ;
}

Pero esto no ejecuta nada, si pngo que todo sean strings si me los lee con el getline porque si es un entero no me lo le con ">>".
Alguna solucion?


En línea

SrCooper

Desconectado Desconectado

Mensajes: 137


Bazinga!


Ver Perfil
Re: [c++] Problema con la lectura de ficheros
« Respuesta #1 en: 28 Diciembre 2014, 16:38 pm »

Podrías leerlo como un string y luego convertirlo a un entero de la siguiente manera:

Código
  1. std::string id_str;
  2.  
  3. getline(f, id_str);
  4.  
  5. v[tam].identificador = std::stoi(id_str);

Para poder usar std::stoi() tienes que compilar en modo C++11, lo cual en mi opinión es recomendable siempre.

Un saludo

PD: Por cierto, no es recomendable hacer llamadas al system al final del programa. Una llamada a std::cin.get() será mucho menos costosa y hará prácticamente lo mismo.

PD2: Además, no te olvides de devolver 0 al final del main, para indicarle al programa que todo ha salido correctamente.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Solucionado] Problema de lectura de ficheros
.NET (C#, VB.NET, ASP)
Kasi 2 3,770 Último mensaje 17 Julio 2009, 17:43 pm
por Kasi
Duda con lectura de ficheros txt
Programación C/C++
Blaster 1 1,985 Último mensaje 11 Abril 2013, 21:13 pm
por Carloswaldo
lectura y escritura de ficheros
Programación C/C++
franfis 6 3,900 Último mensaje 20 Abril 2013, 19:16 pm
por cypascal
Lectura de ficheros de texto en c++
Programación C/C++
angelicavf 1 1,679 Último mensaje 30 Enero 2016, 19:44 pm
por MAFUS
Ayuda urgente con un problema de lectura de ficheros C++
Programación C/C++
JohnAMH 0 1,247 Último mensaje 20 Octubre 2018, 20:13 pm
por JohnAMH
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines