Problème d'écriture dans un fichier

Signaler
Messages postés
12
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
21 novembre 2004
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
salut tout le monde, je débute en c++ et voulais poser une question:
au fait, j'ai un programme qui récupère un nom de fichier que tape l'utilisateur puis ouvre ce fichier en écriture. jusque là ça va mais si je veux écrire dans ce fichier à partir d'une autre fonction que main(), avec dev cpp 4.9, il me dit "fout undeclared (first use in this function).
est-ce que quelqu'un pourrait me dire comment écrire de cette fonction?
merci d'avance

13 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
int OuvrirFichier(char *szpath)
{
FILE *fout;

fout = fopen(szpath, "r");
...
}

Voila, noublie pas de mettre le prototype de la fonction au debut de ton fichier :

int OuvrirFichier(char *);

++
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
27 février 2007
1
C'est vrai quen ouvrant le fichier en lecture AlexMan, ca va marcher....!!!!

je pense qu'il vaut mieux faire: "... = fopen(szpath, "w");
ca va bcp mieux marcher
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
27 février 2007
1
et puis c'est pas du c++ c'est du c. En c++ utiliser iostream
Messages postés
12
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
21 novembre 2004

merci a tous, moi je metais ofstream fout (fichier), j'essaie votre methode
Messages postés
12
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
21 novembre 2004

il faut inclure quoi pour utiliser la gestion du fichier en c ?
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
27 février 2007
1
en c++ ca donne ca:

#include
#include <fstream.h>

void Ecrire(char *filename, char *buffer)
{
ofstream fout(filename);
fout <<buffer<<endl;
fout.close();
}

int main()
{
....
Ecrire( "file.txt", "Bonjour tout le monde" );
....
}
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
27 février 2007
1
gilles89: #include <stdio.h>
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
27 février 2007
1
gilles89, je te conseille vivement de pratiquer le c avant de commencer le c++. Le c te donnera des bases solides...

@+

Fred
Messages postés
12
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
21 novembre 2004

ok, merci DevGizmo
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
DevGizmo > ton exemple c'est pas du c++ standard, et les const !

#include
#include <fstream>

void Ecrire(const char *filename, const char *buffer)
{
std::ofstream fout(filename);
fout << buffer << '\n';
}
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
djl> dans ce genre de fonction qu'est ce que les "const char*" changent réellement par rapport au "char*" ?
Pourquoi ne pas mettre simplement des "char*" ?

Shell
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
assure l'integrité de la chaine, filename peut etre une chaine literale et si on tentee de la modifier ca peux planter
il faut user au maximun des const pour securiser le code et permettre au compilateur d'optimiser, pour les meme raison chaque fonction doit avoir son prototype
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Hum oki,
Bien compris capichef .

Shell