Ecriture dans un fichier en C++ : fin de ligne compte double !

cs_mary4 Messages postés 8 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 13 juillet 2004 - 6 juil. 2004 à 15:58
cs_mary4 Messages postés 8 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 13 juillet 2004 - 8 juil. 2004 à 11:23
Bonjour,
j'ai un petit problème lorsque j'écris dans un fichier...
Lorsque je veux positionner le curseur à une place précise pour écrire, il se positionne avant. Apparemment, c'est parce que le caractère de fin de ligne compte pour deux caracteres...

Par exemple, si je fais :
void ajout(){
fstream fic("text.txt",ios::in|ios::out);
fic.seekg(6,ios::beg);
fic<<"salut";
fic.close();
}
sur le fichier test.txt suivant:
a
b
troisieme ligne

j'obtiens:
a
b
salutieme ligne

au lieu de:
a
b
troisalute ligne

Est-il possible de résoudre ce problème?
Merci d'avance!
Mary4

2 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
6 juil. 2004 à 18:27
En effet sous windows, le caractere de saut de ligne est codé par 2 caractères : "\r\n" .Donc a toi de faire avec !

Voila ++

Alhexman
cs_mary4 Messages postés 8 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 13 juillet 2004
8 juil. 2004 à 11:23
Merci pour cette réponse, mais comme je débute, je n'arrive pas à résoudre le problème ! Que faut-il que j'ajoute dans le code pour que ça marche ?
Ca serait très sympa de m'aider !
Merci d'avance !
Rejoignez-nous