Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3076 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  C++ : Ajouter une ligne à un fichier txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ : Ajouter une ligne à un fichier txt

n°2237726
rattlesnak​e
Posté le 11-09-2014 à 10:54:33  profilanswer
 

Bonjour,
 
Ma question est assez simple, j'aimerais connaître le moyen d'ajouter une ligne en début de fichier par le biais de code c++ (et non par shell avec sed)
 
Merci d'avance !


Message édité par rattlesnake le 11-09-2014 à 11:25:58
mood
Publicité
Posté le 11-09-2014 à 10:54:33  profilanswer
 

n°2237736
gilou
Modérateur
Modzilla
Posté le 11-09-2014 à 13:27:46  profilanswer
 

Il y a pas 36 méthodes en C ou C++: faut passer par un fichier ou on copie successivement son en tête puis le fichier original.
Par exemple ceci:
 

Code :
  1. #include <cstdio>
  2. #include <fstream>
  3. int main() {
  4.     // nom de fichier temporaire utilisable
  5.     char *tmp = std::tmpnam(NULL);
  6.     // Note: valide jusqu'au prochain appel à tmpnam
  7.     // On ouvre le source
  8.     std::ifstream ifs("testapp.txt" );
  9.     // On ouvre le temporaire
  10.     std::ofstream ofs(tmp);
  11.     // On écrit la ligne d'en tete dans le temporaire
  12.     ofs << "ligne d'en tete" << std::endl;
  13.     // On copie le source dans le temporaire
  14.     ofs << ifs.rdbuf();
  15.     // on ferme le tout
  16.     ofs.close();
  17.     ifs.close();
  18.     // On supprime le source
  19.     std::remove("testapp.txt" );
  20.     // On renomme le temporaire avec le nom du source
  21.     std::rename(tmp, "testapp.txt" );
  22.     return 0;
  23. }


Code a améliorer car il ne tient pas compte des problèmes pouvant survenir:
échec de la création d'un des deux streams, du remove ou du rename...
J'ai supposé qu'il s'agissait de fichiers texte (sinon, ouvrir en mode binaire).
 
A+,


Message édité par gilou le 11-09-2014 à 13:44:26

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2237891
rattlesnak​e
Posté le 12-09-2014 à 15:40:39  profilanswer
 

Je le modifie pour que ça colle avec ce qui m'est demandé mais ça fonctionne !
Merci pour ta réponse !     :)


Message édité par rattlesnake le 12-09-2014 à 15:43:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  C++ : Ajouter une ligne à un fichier txt

 

Sujets relatifs
Ecrire dans un fichier binaireAfficher la ligne d'une table après avoir choisi son ID dans une liste
conversion de fichier .cds -> .xls[BAT] Comment ajouter une ligne en début de fichier ?
[bash] ajouter le résultat d'une commande à une ligne dans un fichier[VBA] Ajouter une ligne à un fichier Word à partir de cellules Excel
[Fichier TXT] ajouter un caractère à la fin de chaque ligneAjouter une ligne en tête et fin de fichier
Ajouter une ligne à la fin d'un fichier .txt sous windowscomment ajouter une ligne en fin de fichier avec java ??
Plus de sujets relatifs à : C++ : Ajouter une ligne à un fichier txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR