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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: ayuda, leer archivos en c++ en: 1 Febrero 2015, 07:11 am

Gracias por sus respuestas. el archivo original lo puse en un struct, no se si tal vez estoy ingresando allí algo mal.
Mi código para el struct:
Código:
struct IRIS{
double sl;
double sw;
double pl;
double pw;
string clase;

void llenarDatos(string linea){
stringstream ss;
ss << linea;
string token="";
for(int i=0;i<COLS;i++){
getline(ss,token,',');
stringstream aux;
aux << token;
switch(i){
case 0:
aux >> sl;
break;
case 1:
aux >> sw;
break;
case 2:
aux >> pl;
break;
case 3:
aux >> pw;
break;
case 4:
clase=token;
break;
}
}
}

string toString(){
stringstream ss;
ss << sl << "," << sw <<","<< pl << "," << pw << "," << clase;
return ss.str();
}
};

Mi codigo para leer el archivo:
Código:
vector<IRIS> archivo::cargarDatos(string ruta){
IRIS muestra;
string linea="";
ifstream fichero;
vector<IRIS> datos;
fichero.open(ruta.c_str(),ios::in);
if(fichero.is_open()){
cout<<"ok"<<endl;
                while((getline(fichero,linea,'\n'))!=NULL){
  muestra.llenarDatos(linea);
datos.push_back(muestra);
        }
}else{
cout<<"error al abrir el fichero"<<endl;
}


return datos;
}
2  Programación / Programación C/C++ / ayuda, leer archivos en c++ en: 31 Enero 2015, 06:18 am
Hola,
bueno lo que estoy haciendo es leer un archivo y dividirlo en dos, pues hasta aquí todo bien, tengo los archivos creados con sus respectivos registros.
Pero al momento de leer uno de los archivos que cree antes y poner los datos en un vector, solo ingresa la primera linea del archivo al vector. Si mando a imprimir lo que devuelve de la función getline me muestra los demás registros.No se porque solo se ingresa la primera linea del archivo.

Este es el código que estoy utilizando, tal vez algún consejo?

Código:
vector<string> archivo::cDatos(string ruta){
vector<string> datos;
fstream fichero;
fichero.open(ruta.c_str(),ifstream::in);
string linea="";
while(getline(fichero,linea,'\n')!=NULL){
cout<<"linea: "<<linea<<endl;
datos.push_back(linea);
}
fichero.close();
return datos;
}

Y en consola muestra(por ejemplo):

linea: 4.8,3,1.4,0.1,Iris-setosa
4.7,3.2,1.6,0.2,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines