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
#include <iostream> #include <fstream> #include <string> #include <cstdio> using namespace std; #include "crear.h" #include "buscar.h" int main(){ char opcion; cout << "Introduzca la opcion: "; cin >> opcion; switch(opcion){ case '1': crear(); break; case '2': buscar(); break; case '3': remove( "archivos/juan.txt" ); break; default: cout << "Default" << endl; } cin.get(); return 0; }
buscar.h (header)
Aquí no me da ningún error ni nada, pero no borra el archivo.
Código
void buscar(){ string str; string buscarNombre; string hacerOpcion; string nombreDos; string empresaDos; string edadDos; cout << "Introduce el nombre a buscar: "; cin >> buscarNombre; const char *datname; // No podemos modificar el valor buscarNombre = "archivos/" + buscarNombre + ".txt"; // Asignamos un valor a la variable datname = buscarNombre.c_str(); // c_str devuelve un const char* ifstream fe(datname); if(fe.good()){ // Se muestra el contenido while(!fe.eof()) { char c = fe.get(); str += c; if(c == '\n') { cout << str; str = ""; } } cout << "\nQue desea hacer?" << endl; cin >> hacerOpcion; if(hacerOpcion == "modificar"){ cout << "Modificando archivo..." << endl; ofstream fe(datname); getline(cin, nombreDos); cout << "Nombre: "; getline(cin, nombreDos); cout << "Empresa: "; getline(cin, empresaDos); cout << "Edad: "; cin >> edadDos; nombreDos = "Nombre: " + nombreDos; empresaDos = "Empresa: " + empresaDos; edadDos = "Edad: " + edadDos; cin.ignore(2, '\n'); fe.write(nombreDos.c_str(), nombreDos.size()); fe << endl; fe << endl; fe.write(empresaDos.c_str(), empresaDos.size()); fe << endl; fe << endl; fe << edadDos << endl; fe.close(); } else if(hacerOpcion == "borrar"){ remove( "archivos/juan.txt" ); } else{ cout << "Opcion no valida." << endl; } } }
Agradecería que me pudieran comentar a que se debe dicho error.
Saludos.