[C,C++] ecriture tableau dans un fichier

ecriture tableau dans un fichier [C,C++] - C++ - Programmation

Marsh Posté le 09-01-2003 à 01:37:40    

Bonjour
 
Je voudrais ecrire un tableau d'entier dans un fichier.
Puis pouvoir recuperer ces valeurs et les remettre dans un tableau.  
 
J'arrive a écrire dans le fichier mais pas à lire.
 
ecriture:
   int table[3]={3,5,3};
   ofstream sortie("test",ios::out);
   for(i=0;i<3;i++){
      sortie << table[i];  
   }
 
   sortie.close;
 
lecture:
   int tableau[3];
   ifstream entree("test",ios::in);
   for(i=0;i<3;i++){
       entree >> tableau[i]
   }
   entree.close;
 
Et la lecture ça marche pas, je ne récupere pas les entiers qu'il faut dans mon tableau.
 
D'avance merci.
 
 

Reply

Marsh Posté le 09-01-2003 à 01:37:40   

Reply

Marsh Posté le 09-01-2003 à 01:42:15    

bill599 a écrit :

Bonjour
 
Je voudrais ecrire un tableau d'entier dans un fichier.
Puis pouvoir recuperer ces valeurs et les remettre dans un tableau.  
 
J'arrive a écrire dans le fichier mais pas à lire.
 
ecriture:
   int table[3]={3,5,3};
   ofstream sortie("test",ios::out);
   for(i=0;i<3;i++){
      sortie << table[i];  
   }
 
   sortie.close;
 
lecture:
   int tableau[3];
   ifstream entree("test",ios::in);
   for(i=0;i<3;i++){
       entree >> tableau[i]
   }
   entree.close;
 
Et la lecture ça marche pas, je ne récupere pas les entiers qu'il faut dans mon tableau.
 
D'avance merci.


C'est impossible que ça marche il faut au minimum lui passer un pointeur si tu veux qu'il écrive dans ta case. Sans aller chercher ma doc, je parie (un pinte au Tour du monde à Brest) que :
entree >> &(tableau[i]);
fonctionne.

Reply

Marsh Posté le 09-01-2003 à 07:39:29    

nraynaud a écrit :


C'est impossible que ça marche il faut au minimum lui passer un pointeur si tu veux qu'il écrive dans ta case. Sans aller chercher ma doc, je parie (un pinte au Tour du monde à Brest) que :
entree >> &(tableau[i]);
fonctionne.

arrete le massacre s'ilte plait et ne réponds plus aux questions sur le C et le C++
 

Code :
  1. const char separateur(' ');
  2. int table[3]={3,5,3};
  3.   ofstream sortie("test",ios::out);
  4.   for(int i=0;i<3;i++){
  5.      sortie << table[i] << separateur; 
  6.   }
  7.   sortie.close();
  8. lecture:
  9.   int tableau[3];
  10.   ifstream entree("test",ios::in);
  11.   for(iny i=0;i<3;i++){
  12.       entree >> tableau[i]
  13.   }
  14.   entree.close();


 
il manquait quelques points-virgules déjà.
 
ton problème: tu écris dans le fichier
 
test
----
353
 
comment veux tu qu'en lecture, tu arrives à y lire 3 nombres? si tu regardes ton programme dans l'etat actuel, tu arrives à lire tableau[0] qui vaut alors 353. La solution? mettre un caractère séparateur blanc (espace, tabulation, retour à la ligne)


Message édité par Taz le 09-01-2003 à 07:43:26
Reply

Marsh Posté le 09-01-2003 à 14:29:26    

++Taz a écrit :

arrete le massacre s'ilte plait et ne réponds plus aux questions sur le C et le C++


 
Gloups passage par référenc indissociable du passage par valeur côté utilisateur.
Je ne vois pas le rapport avec le C, et je ne vois pas en quoi une erreur sur une fonctionalité douteuse du langage (un principe de développement est "expliciter l'implicite" ) me banirait de celui-ci.
 
Pour ta pinte, n'oublie pas que c'est sur le port de plaisance à Brest (le message n'a pas été édité, c'était précisé depuis le début). Je te conseille une pinte de Britt, c'est plus cher, mais c'est meilleur et comme tu payes pas ...

Reply

Marsh Posté le 09-01-2003 à 14:35:54    

ben j'ai eu l'impression que tu croyais corriger un & manquant dans un scanf C :sweat:  
 
 
 

Citation :

une erreur sur une fonctionalité douteuse du langage

a y est tu recommences  :D  :lol:  :lol:  :lol:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed