J'essaie d'écrire un programme qui modifie un fichier .txt d'un répertoire de variables. Cependant quand j'essaye de faire ainsi j'obtiens une erreur.Modifier un fichier .txt d'un répertoire de variables
Mon erreur:
no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(std::string&)'
Mon code:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
string file_name ;
cout << "Input the directory of the file you would like to alter:" << endl;
cin >> file_name ;
ofstream myfile (file_name);
if (myfile.is_open())
{
myfile << "This is a line.\n";
myfile << "This is another line.\n";
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
Qu'est-ce que je fait de mal?
Vous n'avez pas besoin d'appeler 'myfile.close()'; le destructeur 'ofstream' fermera automatiquement le fichier pour vous. Lorsque vous lisez l'entrée d'un flux (comme vous le faites avec 'cin >> nom_fichier'), vous devez toujours vérifier que l'entrée a réussi. Lorsque vous lisez une chaîne, il est peu probable que l'opération échoue, mais si vous lisez quelque chose d'autre (comme un numéro quelconque), les échecs sont plus probables. –