Bonjour à tous,

J'ai une routine assez longue à coder de lecture/écriture de fichier et comme certaine partis pourraient être traitées avec des fonction à part, j'aimerais passer en paramètre à ces fonction la position du flux que je lis/écris.

Déjà j'aimerais savoir si c'est possible et ensuite comment on déclare de tels flux dans le passage de paramètre ?
Ce serait quelque chose comme :
void construc_ligne(oftream(?) nomflux, char * [11] nomfich) ?

Comme je ne sais pas si je m'explique bien, voici mon bout de code comme exemple plus concret :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
void Dune::build_table(Vecteurdunes vd, int srid, char date[11] , int temps_relatif)
{
    int nbd, j, nbp;
    double nx, ny, nz ;
    Point p;
 
    char nsql[taille];
    ofstream fich(nsql, ios::app);
 
     if(!fich)
         cout<<"... !\n";
     else
     {
        for(int i=0; i<nbd; i++)
        {
 
            if (!entree)
            {
                cout << " \n ...!! \n" ;
            }  
            else // fichier dune ouvert
            {
                while (entree.eof()==false)
                {
                     //fonction lecture fichier
                     entree >> nom; //lecture de la première ligne
                     entree >> id;
                     entree >> nbp;
                     //construction des X de la ligne de crête
                     for (j=0; j<nbp; j++)
A ce stade là je voudrais créer ma fonction de construction de ligne et lui passer en paramètre le flux que j'ai appelé "entree"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
                     crete.construc_ligne(oftream(?) entree, char[11] nomfich);
                     {
                         entree >> nx;
                         p.set_x(nx);
                         crete.ajout_point(p);
                     }
                     for (j=0; j<nbp; j++) //construction des Y de la ligne de crête
                     {
                         entree >> ny;
                         p = crete.get_point(j);
                         p.set_y(ny);
                         crete.set_point(p, j);
                     }
                     for (j=0; j<nbp; j++) //construction des Z de la ligne de crête
                     {
                         entree >> nz;
                         p = crete.get_point(j);
                         p.set_z(nz);
                         crete.set_point(p, j);
                     }
                 }
                 crete.L.erase(crete.L.begin(), crete.L.end());
             }//fin fichier dune ouvert
         }//fin pour le i em fichier ouvert du vecteur dune
     }/*FIN SET_info*/
}
Merci d'avance pour vos réponses

EDIT : Merci énormément à celui qui a modifié l'apparence du code, c'est beaucoup plus clair comme ça !! J'ai bien tenté de faire comme dans les autres post, mais je n'ai pas réussi à trouver comment faire.