Nous sommes actuellement le 15 Juil 2026, 16:13

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
MessagePublié: 20 Mars 2003, 10:00 
Hors-ligne
Répond à tout!
Répond à tout!

Inscription : 10 Jan 2002, 14:09
Message(s) : 2386
Localisation : Verdun
Bonjour, J'ai quelque difficulté a écrire en mode binaire.
Si mon fichier n'existe pas et que je fais la condition suivante :
Code :
filewrite.open(filename, ios_base::out | ios_base::trunc | ios_base::binary)


Le programme ne va pas écrire dans le fichier, parcontre quand le fichier existe déja, cela fonction(avec résultat étrange(ca écris le mots+ le binaire)).
:
Code :
filewrite.open(filename, ios_base::in | ios_base::out | ios_base::ate | ios_base::binary);


Voici la partie du code apres avoir vérifier si la ligne de commande est ok.(veuillez noter que c'est pour aprendre, pas trop d'utilité pour l'instant)
Code :
   ofstream filewrite;
   filewrite.open(filename, ios_base::in | ios_base::out | ios_base::ate | ios_base::binary);      //long way
   while(!filewrite.is_open())
   {
      filewrite.close();
      cout << "File not found!"<< endl;
      cout << "Do you want to create a new one ? [y/n] _\b" << flush;
      char choix;
      while(toupper(choix = cin.get()) != 'Y' && toupper(choix = cin.get()) != 'N')
         continue;
      clearline();
      switch (choix)
      {
         case char('Y'):
         case char('y'):   filewrite.open(filename, ios_base::out | ios_base::trunc | ios_base::binary);      //long way
                     break;
         case char('N'):
         case char('n'):   return 1;
      }

   }
char ch;
   char commentaire[10];
   cout << "Entree un commentaire : ____________________\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" << flush;
   int i = 0;
   while((ch = cin.get()) != '\n')
   {
      commentaire[i] = ch;
      commentaire[++i] = '\0';
   }
         // juste pour avoir de l'info
   cout << "sizeof commentaire = " << sizeof(commentaire) << " i = " << i <<endl;
   filewrite.write((char *)commentaire, sizeof(commentaire));
   filewrite.close();

   ifstream fileread(filename, ios_base::in | ios_base::binary);
   fileread.clear();
   while(fileread.read((char *)commentaire, sizeof(commentaire)))
      cout << commentaire;

   fileread.close();



Premierement il essait d'ouvrir le fichier en append, si ca ne fonctionne pas "is_open", il rentre dans la boucle pour le créer.
Aussi, lorsque j'apuis sur 'n', le programme plante et la librarie fstream prend 100% de mon cpu.


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site