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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al retornar una linea de un archivo en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al retornar una linea de un archivo en C++  (Leído 1,831 veces)
Elmisteriokay

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Error al retornar una linea de un archivo en C++
« en: 5 Junio 2018, 18:34 pm »

Me sale un error ¿por que?
Código
  1. #include<iostream>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<fstream>
  5. #include<sstream>
  6. using namespace std;
  7.  
  8. string leer(string nombreArchivo,int linea){
  9. string lineas;
  10. ifstream archivo;
  11. archivo.open(nombreArchivo.c_str(),ios::in);
  12. int contador = 1;
  13. if(archivo.fail()==true){ //Fallo al abrir el archivo
  14. cout<<"No se pudo abrir el archivo..."<<endl;
  15. cin.ignore(cin.rdbuf()->in_avail()+1);
  16. exit(0); //Sale del programa
  17. }
  18.  
  19. while(getline(nombreArchivo,lineas)){
  20. if(contador == linea)
  21. return lineas;
  22. else{
  23. contador++;
  24. }
  25. }
  26. archivo.close();
  27. }
  28.  
  29. int main(int argc,char *argv[]){
  30. string nombreArchivo;
  31. cout<<"Digite el nombre del archivo: ";
  32. getline(cin,nombreArchivo);
  33.  
  34.  
  35. cout<<leer(nombreArchivo,2)<<endl;
  36. return 0;
  37. }[code=cpp]
[/code]


En línea

SrMcLister

Desconectado Desconectado

Mensajes: 35



Ver Perfil
Re: Error al retornar una linea de un archivo en C++
« Respuesta #1 en: 5 Junio 2018, 19:17 pm »

Si te salta el error en la linea 19, prueba en vez de getline a usar el feof o eof del fichero y comentas el resultado.
Código
  1. while(!feof(nombreArchivo))

Un saludo!


En línea

Código
  1. return((u.areHappy() && u.knowIt()) ? u.clapYourHands() : u.goFuckYourself());
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error al retornar una linea de un archivo en C++
« Respuesta #2 en: 5 Junio 2018, 21:08 pm »

¿Qué error te da el compilador?

Vale getline, en el primer argumento le pasas el nombre archivo cuando debes pasar su manejador. De igual forma debes reestructurar la función para que termine con un return. Algo así:
Código
  1. string leer(string nombreArchivo,int linea){
  2.    string lineas;
  3.    ifstream archivo;
  4.    archivo.open(nombreArchivo.c_str(),ios::in);
  5.    int contador = 1;
  6.    if(archivo.fail()==true){ //Fallo al abrir el archivo
  7.        cout<<"No se pudo abrir el archivo..."<<endl;
  8.        cin.ignore(cin.rdbuf()->in_avail()+1);
  9.        exit(0); //Sale del programa
  10.    }
  11.  
  12.    while(getline(archivo,lineas)){
  13.        if(contador == linea)
  14.            break;
  15.        else{
  16.            contador++;
  17.        }
  18.    }
  19.    archivo.close();
  20.    return lineas;
  21. }
« Última modificación: 5 Junio 2018, 21:18 pm por MAFUS » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines