[C++] Remove File
Hello, tenog a problem with deleting a file I have the function check and everything but the file is not deleted.
Line function:
1 2 3
|
else if(hacerOpcion == "borrar"){
remove("archivos/juan.txt");
}
|
Libraries that I'm using :
1 2 3 4
|
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
|
Full code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
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;
}
}
|
Greetings .
I think you should close the file stream before trying to remove the file.
At that time I am not referring to any variable, only I turn to a file hosted on a specific folder.
Solved.
fe.close();
Ty!
Topic archived. No new replies allowed.