En C l'équivalent du record Pascal s'appelle struct.
En
c'est classe. Par exemple une triangulation étant faite
de sommets (vertex) et de triangles, on définira la structure suivante:
// fichier lirmicro.cpp
#include <iostream.h>
#include <fstream.h>
//DECLARATIONS
class Vertex { public: float x,y; int where;};
class Triangle { public: int v[3]; int where;};
class Triangulation { public:
int nv,nt;
Vertex* v;
Triangle* t;
Triangulation(const char* path);
};
//IMPLEMENTATION
Triangulation::Triangulation (const char* path)
{
int i,j,k,i1;
ifstream file(path);
file >> nv >>nt;
v = new Vertex[nv];
t = new Triangle[nt];
for( i=0; i<nv; i++) file >> v[i].x >> v[i].y >> v[i].where;
for( j=0; j<nt; j++)
{ for( k=0; k<3;k++){ file >> i1; t[j].v[k] = --i1;}
file >> t[j].where;
}
file.close();
}
void main()
{
Triangulation g("micro.msh");
}
![]()
On a soustrait 1 aux numéros des sommets lus pour t[j].v[k] en écrivant
"- -i1".
Ceci est du au fait que les tableaux en C/C++ commencent en 0 alors qu'ils
commencent en 1 en FORTRAN. Nous adoptons la convention FORTRAN pour les
fichiers car les programmeurs C connaissent cette difficulté et pas toujours
les programmeurs FORTRAN.