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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++] Importar Remove(); [SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C++] Importar Remove(); [SOLUCIONADO]  (Leído 2,759 veces)
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
[C++] Importar Remove(); [SOLUCIONADO]
« en: 17 Mayo 2015, 16:08 pm »

Buenas,

Tengo un pequeño problema que no se donde falla, osea todo va bien sin fallos ni nada...
tengo en un header una función en la que se ejecuta la función remove(); pero desde el header no funciona, sin embargo la pongo en el main y funciona correctamente.

Creo que es por el return, intento poner return en el header pero me salta error.

Aquí el código:

main.cpp

Aquí remove(); funciona perfectamente.

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <cstdio>
  5.  
  6. using namespace std;
  7.  
  8. #include "crear.h"
  9. #include "buscar.h"
  10.  
  11. int main(){
  12.  
  13. char opcion;
  14.  
  15. cout << "Introduzca la opcion: ";
  16. cin >> opcion;
  17.  
  18. switch(opcion){
  19. case '1':
  20. crear();
  21. break;
  22. case '2':
  23.    buscar();
  24.    break;
  25. case '3':
  26. remove( "archivos/juan.txt" );
  27. break;
  28.  
  29. default:
  30. cout << "Default" << endl;
  31. }
  32.  
  33. cin.get();
  34. return 0;
  35. }

buscar.h (header)

Aquí no me da ningún error ni nada, pero no borra el archivo.

Código
  1. void buscar(){
  2. string str;
  3. string buscarNombre;
  4. string hacerOpcion;
  5. string nombreDos;
  6. string empresaDos;
  7. string edadDos;
  8.  
  9. cout << "Introduce el nombre a buscar: ";
  10. cin >> buscarNombre;
  11.  
  12. const char *datname; // No podemos modificar el valor
  13.  
  14. buscarNombre = "archivos/" + buscarNombre + ".txt"; // Asignamos un valor a la variable
  15.  
  16. datname = buscarNombre.c_str(); // c_str devuelve un const char*
  17.  
  18. ifstream fe(datname);
  19.  
  20. if(fe.good()){
  21. // Se muestra el contenido
  22. while(!fe.eof())
  23.        {
  24.            char c = fe.get();
  25.            str += c;
  26.  
  27.    if(c == '\n') {
  28.                cout << str;
  29.                str = "";
  30.            }
  31.        }
  32.  
  33.        cout << "\nQue desea hacer?" << endl;
  34.        cin >> hacerOpcion;
  35.  
  36.        if(hacerOpcion == "modificar"){
  37.         cout << "Modificando archivo..." << endl;
  38.  
  39.         ofstream fe(datname);
  40.  
  41.         getline(cin, nombreDos);
  42.         cout << "Nombre: ";
  43.        getline(cin, nombreDos);
  44.  
  45.         cout << "Empresa: ";
  46.        getline(cin, empresaDos);
  47.  
  48.        cout << "Edad: ";
  49.        cin >> edadDos;
  50.  
  51.        nombreDos = "Nombre: " + nombreDos;
  52.        empresaDos = "Empresa: " + empresaDos;
  53.        edadDos = "Edad: " + edadDos;
  54.  
  55.        cin.ignore(2, '\n');
  56.  
  57.        fe.write(nombreDos.c_str(), nombreDos.size());
  58.        fe << endl;
  59.        fe << endl;
  60.        fe.write(empresaDos.c_str(), empresaDos.size());
  61.        fe << endl;
  62.        fe << endl;
  63.        fe << edadDos << endl;
  64.  
  65.        fe.close();
  66.        }
  67.        else if(hacerOpcion == "borrar"){
  68.         remove( "archivos/juan.txt" );
  69.        }
  70.    else{
  71.    cout << "Opcion no valida." << endl;
  72.    }
  73.    }
  74. }

Agradecería que me pudieran comentar a que se debe dicho error.

Saludos.


« Última modificación: 17 Mayo 2015, 17:56 pm por YuseTist » En línea

Esta página web no está disponible - Google Chrome
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C++] Importar Remove();
« Respuesta #1 en: 17 Mayo 2015, 16:10 pm »

¿Y estás seguro de que se llega a llamar a esa función?


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C++] Importar Remove();
« Respuesta #2 en: 17 Mayo 2015, 16:21 pm »

¿Y estás seguro de que se llega a llamar a esa función?

En el main.cpp

Código
  1. #include "buscar.h"

Los demás parámetros de la función funcionan correctamente menos la función remove();
En línea

Esta página web no está disponible - Google Chrome
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: [C++] Importar Remove();
« Respuesta #3 en: 17 Mayo 2015, 17:56 pm »

Problema resulto,

Al final el error de debía a que me denegaba la función por tener el archivo abierto.
Al igual que cuando estás editando un archivo con notepad++ y lo quieres borrar y te salta un mensaje de alerta denegandote que no se puede borrar es lo que me pasaba, tenía el archivo abierto y no me dejaba.

He cerrado el archivo y ya todo funciona correctamente.

Gracias y disculpen las molestias.

Código
  1. else if(hacerOpcion == "borrar"){
  2.         remove( "archivos/juan.txt" );
  3.        }


Código
  1. else if(hacerOpcion == "borrar"){
  2.                        fe.close();
  3.         remove( "archivos/juan.txt" );
  4.        }

Saludos.
En línea

Esta página web no está disponible - Google Chrome
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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