Bonjour,


Je découvre tout doucement le C++.

J'étais en train de tester, de créer une fonction pour l'écriture dans des fichiers.

J'ai donc testé de la sorte :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
// exemple 1 ça marche :
 
 
#include <iostream>
#include <string>
#include <fstream>
 
 
using namespace std;
 
void ecrireFichier()
 
{
 ofstream fichier("c:\\fichier.txt", ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert
 
 
                fichier << "Bonjour";
 
                fichier.close();
 
 
}
 
int main()
 
{
 
ecrireFichier();
 
}

Puis de la sorte, qui fonctionne également

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
.
// ##############################
//exemple 2 : ça marche aussi 
 
#include <iostream>
#include <string>
#include <fstream>
 
 
using namespace std;
 
void ecrireFichier(string valeur)
 
{
 ofstream fichier("c:\\fichier.txt", ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert
 
 
                fichier << valeur;
 
                fichier.close();
 
 
}
 
int main()
 
{
 
ecrireFichier("Salut !");
 
}

Par contre ici, en mettant en parametre à la fois le chemin du fichier et la valeur à écrire, ça coince.

J'ai l'erreur suivante dans Code::Blocks

erreur à la ligne 11 "error: no matching function for call to 'std::basic_ofstream<char>::basic_ofstream(std::string&, std::_Ios_Openmode)'|"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
//##########################
// exemple 3 : ça ne marche pas 
//erreur à la ligne 11 "error: no matching function for call to 'std::basic_ofstream<char>::basic_ofstream(std::string&, std::_Ios_Openmode)'|"
 
 
#include <iostream>
#include <string>
#include <fstream>
 
 
using namespace std;
 
void ecrireFichier(string fichierEcrire, string valeur)
 
{
 ofstream fichier(fichierEcrire, ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert
 
 
                fichier << valeur;
 
                fichier.close();
 
 
}
 
int main()
 
{
 
ecrireFichier("c:\\fichier.txt", "Salut !");
 
}

Pourriez vous m'expliquer ce qui semble poser problème ?


Merci