hola gente alguien me podria decir si se puede pasar de un txt
Citarpepe
luis
juan
jose
carlos
raul
flony
a un vector string [6], mas o menos mi idea era
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
}
}
}
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:
for (int i = 0; i < 7; i++)
{
getline(MiArchivo, candidatosTxt [i]);
}
//tambien
for (int i = 0; i < 7; i++)
{
getline(MiArchivo, linea);
candidatosTxt [i] = linea; // aca el error
}
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:
void leer_txt(char *txtName) {
std::vector <std::string> v;
std::string line;
std::ifstream is(txtName, std::ifstream::in);
while(!is.eof()) {
getline(is, line);
v.push_back(line);
}
...
Saludos
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:
while (getline(is, line))
v.push_back(line);
Un saludo
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.