Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > ecriture dans des fichiers differents > Lecture du sujet

ecriture dans des fichiers differents

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne EIJO # Posté le 03/07/2008 à 17:03:34
Groupe : Membres
Bonjour,

Je souhaite ecrire des donnees lues dans un fichier donné et les réecrire dans différents fichiers a chaque passage dans lq boucle sur k.
Voici mon code :

Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<fstream>
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{

  fstream read("donnees.dat",ios::in);
  
  fstream write1("case1.dat", ios::out);
  fstream write2("element2.dat",ios::out);
  fstream write3("case2.dat", ios::out);
  fstream write4("case3.dat", ios::out);
  fstream write5("element3.dat", ios::out);
  

double x,compteur;
  double a[4500][5];
  int i,j,k;
  
    for(k=0;k<4;k++)
    {
            
      readstellib>>compteur;
      readstellib>>x;
      cout<<"compteur="<<compteur<<endl;
      
      for(i=0;i<compteur;i++)
    {
      for(j=0;j<5;j++)
	{
      read>a[i][j];
        }
      
      write1<<a[i][0]<<endl; // le probleme se situe ici : comment modifier le write1 en write2 etc a chaque passage ds la boucle sur k ??
          
}
    }

  return 0;
}


Mon probleme est que je ne sais pas comment pouvoir modifier le write1 à chaque tour dans la boucle sur k. Cést a dire que j'aimerais avoir write1 dans le 1er tour de boucle, write2 dans le second...
Est-ce possible, si oui comment ? et sinon y a-t-il une autre possibilité ?
Merci d'avance !!
Hors ligne lmghs # Posté le 03/07/2008 à 17:09:18
Groupe : Membres
Tableau de fstream, et tu écris dans le (i%5)-ième ?
 
Hors ligne EIJO # Posté le 03/07/2008 à 17:13:52
Groupe : Membres
Merci pour ta reponse. En fait je debute pas mal en C++ (j'ai un peu plus de bases en C) Jímagine que c'est dans le cours ( dsl j'ai pas trouvé le chapitre) mais peux-tu m'expliquer comment est-ce qu'on déclare un tableau de fstream ? et a quoi correspond ton i%5 (i modulo 5 ? dans ce cas il doit y avoir quelque chose qui m'echappe...je ne vois pas le lien...)
Merci encore pour ta reponse !
Hors ligne Hiura # Posté le 03/07/2008 à 17:21:19
Avatar
Groupe : Membres
tableau de fstream = tableau comme tout les autres (cf tuto). ou std::vector.
si tu fait une boucle, tu incrémente i/k/z à chaque tour. Tu utilises i/k/z pour accéder à l'élément du tableau avec [].
 
Hors ligne lmghs # Posté le 03/07/2008 à 17:35:06
Groupe : Membres
Fais une petite boucle sur .. aller, 20 éléments, et affiche le modulo 5 de i.
Tu devrais voir le rapport avec un tableau de 5 éléments assez vite.

@ hiura, il peut y avoir des effets de bords avec les vecteurs de fstream qui font que je le laisse avec les tableaux pour l'instant -- push_back ne marchera pas.
 
Hors ligne EIJO # Posté le 03/07/2008 à 17:43:33
Groupe : Membres
Vous me dites que un tbl de fstream est un tbl comme les autres donc j'ai déclaré mon tableau de cette facon fstream write[4] et ensuite j'ai defini tous les elements de mon tableau de la facon write[1]("case1.dat", ios::out); etc etc et enfin write[k]<<a[i][0]<<endl; dans ma boucle
Bon il y a une grossiere erreur j'imagine ;-) quelqu'un pour me mettre sur la piste ?
Merci beaucoup
Édité le 03/07/2008 à 17:45:01 par EIJO
Hors ligne lmghs # Posté le 03/07/2008 à 17:49:00
Groupe : Membres
"write[1].open(...)"
La construction a déjà eu lieu.
 
Hors ligne Hiura # Posté le 03/07/2008 à 17:52:07
Avatar
Groupe : Membres
Citation : lmghs
@ hiura, il peut y avoir des effets de bords avec les vecteurs de fstream qui font que je le laisse avec les tableaux pour l'instant -- push_back ne marchera pas.
Je devrais réfléchir plus.... :euh:
 
Hors ligne EIJO # Posté le 03/07/2008 à 17:53:05
Groupe : Membres
OK !! Merci a tous pour votre aide...ca fonctionne !!
Hors ligne lmghs # Posté le 03/07/2008 à 18:09:11
Groupe : Membres
@hiura. Le truc, c'est que j'ai hésité. Mais je ne voulais pas rentrer dans les détails des constructions qui dimensionnent la taille, ou des push_back ... de pointeurs.

Tout dépend s'il y a toujours 5 fichiers, ou s'il peut y en avoir un nombre inconnu lors de la compilation, ou si ce nombre peut varier.
 
Hors ligne Hiura # Posté le 04/07/2008 à 12:14:30
Avatar
Groupe : Membres
Oui, mais ça complique pas mal les choses quand on débute, donc c'est pas forcement bien. (Ce que à quoi tu as pensé et pas moi ;) .)
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 204 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0299s (0.0077s)