Ecrire dans un fichier

Fermé
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 - Modifié par yougy2 le 10/05/2013 à 18:03
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 - 16 mai 2013 à 12:35
Bonjour, alors voila, je veux faire un programme qui ecrit dans un fichier a une place précise dans le texte. voila comment je procède (dites moi en passant si la forme est correcte, je suis en train d'apprendre en même temps)

string const nFich("text.txt");
ofstream fichier(nFich.c_str(),ios::app);

if(fichier)
{

fichier.seekp(12, ios::beg);
fichier << "sont";

}

Alors voila le problème, comme phrase ecrite dans mon fichier j'ai ecrit "Les animaux gentils." (vous moquez pas j'avais pas d'inspiration ^^) donc premièrement, je me place au 12 eme caractère de ma phrase et j'ecris "sont" pour former "les animaux sont gentils".
Mais voila le problème, le programme m'ecrit tout le temps sont a la fin et ne tiens pas compte de la place du curseur dans le fichier.
je pense que ca viens de la syntaxe de ma phrase mais je sais pas ou ... une solution plz ?
A voir également:

6 réponses

BusyBeingDelicious
10 mai 2013 à 18:40
http://www.cplusplus.com/reference/fstream/ofstream/open/

ios::app ecrit TOUJOURS a la fin du fichier, utilise ios::out
0
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
10 mai 2013 à 22:40
ah merci beaucoup, je vais essayer ca
0
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
10 mai 2013 à 22:52
Ah non alors ios::out ne marchait pas, il m'effacait tout le mot et ecrivait sont au 12 eme caractère par contre, ios::in marche mais je suis obligé de prévoir l'espace nécessaire sinon il ecrit au dessus des autres mots, il y a pas un moyen pour remédier a ca ?
0
BusyBeingDelicious Messages postés 4 Date d'inscription vendredi 10 mai 2013 Statut Membre Dernière intervention 11 mai 2013
11 mai 2013 à 00:44
bizzare que ios::in marche, normalement cela permet seulement la lecture.
Quel resultat obtient tu exactement?
Je penses que ce que tu peux faire, c'est recuperer le contenu d'un fichier dans un string, inserer ton texte dans le string, et ecrire la string dans le resultat
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
Modifié par yougy2 le 11/05/2013 à 20:54
Alors je procède comme ca :

Dans mon fichier texte :

Les animaux(Espace x6)gentils.

Et dans mon fichier cpp :

string const nFich("text.txt");
ofstream fich(nFich.c_str(),ios::in);

if(fich)
{
fich.seekp(12, ios::beg);
fich << "sont";
}

et pour la solution que tu m'a dit, c'est que ca peux marcher en effet mais si je prévois de faire de longs fichier qui devront etre modifiés a plusieurs endroits, mon programme risque d'ètre assez long et aggacant a faire non ?
0
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
16 mai 2013 à 12:35
up
0