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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda para un programita [resuelto]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda para un programita [resuelto]  (Leído 1,227 veces)
flony


Desconectado Desconectado

Mensajes: 565



Ver Perfil
duda para un programita [resuelto]
« en: 30 Agosto 2014, 05:24 am »

hola gente alguien me podria decir si se puede pasar de un txt
Citar
pepe
luis
juan
jose
carlos
raul
flony
a un vector string [6], mas o menos mi idea era
Código:
void leer_txt()
{
string linea;
string candidatosTxt [6];
ifstream MiArchivo ("votos.txt");
if (MiArchivo.is_open())
{
for (int i = 0; i < 7; i++)
{
candidatosTxt [i] = getline(MiArchivo, linea); // aca el error
}
}
}


« Última modificación: 31 Agosto 2014, 20:26 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: duda para un programita
« Respuesta #1 en: 30 Agosto 2014, 05:42 am »

Buen día,

Creo que es porque getline no devuelve la línea, la guarda en la variable que le pasas por el segundo parámetro. Si dices getline(MiArchivo, linea); entonces el valor se guardará en linea, por lo que debería ser:

Código
  1.  for (int i = 0; i < 7; i++)
  2.  {
  3.      getline(MiArchivo, candidatosTxt [i]);
  4.  }
  5.  
  6.  //tambien
  7.  for (int i = 0; i < 7; i++)
  8.  {
  9.      getline(MiArchivo, linea);
  10.      candidatosTxt [i] = linea; // aca el error
  11.  }
  12.  


En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: duda para un programita
« Respuesta #2 en: 30 Agosto 2014, 11:02 am »

Hola flony.

Pero de ese modo el código queda muy dependiente de la cantidad de líneas que tenga el archivo...

Me parece que sería mas flexible de este modo:
Código
  1. void leer_txt(char *txtName) {
  2.  std::vector <std::string> v;
  3.  std::string line;
  4.  std::ifstream is(txtName, std::ifstream::in);
  5.  
  6.  while(!is.eof()) {
  7.    getline(is, line);
  8.    v.push_back(line);
  9.  }
  10. ...
  11.  

Saludos
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: duda para un programita
« Respuesta #3 en: 30 Agosto 2014, 18:04 pm »

En la mayoria de los casos (por ejemplo este) se puede evitar el uso de la funcion feof, en su lugar se verifica el resultado de la funcion utilizada:
Código
  1. while (getline(is, line))
  2.   v.push_back(line);

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
flony


Desconectado Desconectado

Mensajes: 565



Ver Perfil
Re: duda para un programita
« Respuesta #4 en: 31 Agosto 2014, 20:26 pm »

gracias a todos por darme una mano :)
ZeroVzla tenias razón era así, ecfisa me hiciste acordar que con <vector> se puede devolver la función y no dependería de una "x" cantidad de lineas, y rir3760 esa parte no la sabia.
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programita para el CS
Programación Visual Basic
XP. 0 641 Último mensaje 8 Mayo 2006, 04:27 am
por XP.
duda programita
Programación C/C++
leosansan 2 1,211 Último mensaje 20 Abril 2012, 00:05 am
por s00rk
ayuda para hacer un programita en vb6
Programación Visual Basic
purocuque 1 1,052 Último mensaje 8 Julio 2012, 11:41 am
por noele1995
Duda de como crear un programita interesante que introduzca datos en un buscador
Desarrollo Web
De_LokoO 6 1,865 Último mensaje 26 Junio 2013, 18:50 pm
por De_LokoO
Mi programita para calcular hipotecas y préstamos en C++
Programación C/C++
RevolucionVegana 0 2,045 Último mensaje 30 Noviembre 2016, 19:58 pm
por RevolucionVegana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines