Bonjour ! Je crois que tout est dans la question. Merci d'avance !
Bonjour ! Je crois que tout est dans la question. Merci d'avance !
Il faut passer par un fichier intermédiaire
Je ne sais pas si j'ai mal compris la question (pourquoi devoir passer par un fichier intermédiaire!?).
Tu ouvres le fichier avec un std::ifstream, de là tu te déplaces à la fin du fichier avec la méthode seekp(0,ios_base::end) (cf. http://www.cplusplus.com/reference/i...am/seekp.html), puis tu écris avec l'opérateur <<.
Bonne journée!
Parce que si on fait comme tu le suggères, on va écraser les données qui se trouvent après la position d'écriture. Pour insérer du texte il faut bien passer par un fichier ou tout du moins un buffer temporaire.pourquoi devoir passer par un fichier intermédiaire!?
Je ne m'en étais jamais rendu compte lol
Ce n'est quand même pas très bien fait (ouhla je sens que je vais me faire assassiner là )
Quelqu'un pourrait m'expliquer pourquoi la fin du fichier est écrasée?
avec "ABCDEFGHIJKLMNOPQRSTUVWXYZ" écris dans le fichier testfile.txt, j'obtiens après exécution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 std::fstream exemple; exemple.open("C:\\testfile.txt", std::ios_base::out | std::ios_base::trunc); exemple << "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; exemple.close(); std::fstream file; file.open("C:\\testfile.txt", std::ios_base::in | std::ios_base::out); file.seekg(std::ios_base::end); file << "\n123456789\n"; file.close();
Pourquoi cela commence à partir du troisième caractère (c qui est remplacé par \n)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 AB 123456789 PQRSTUVWXYZ \n
Lorsque je met file.seekp(0,std::ios_base::end), là ça commence bien à partir de Z et ça remplit dans l'ordre inverse...
seekg c'est la position de lecture, seekp celle d'écriture.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager