Ceci est une fonction qui lit des valeurs numériques réelles à partir d'un fichier texte, sous unix.
le fichier contient des noeuds et leurs coordonnées dans l'espace 3D, mais ce qui m'intéresse c'est les x et y, au début du fichier le nombre de noeuds.
#include <iostream.h>
#include <fstream.h>
#include <cstring>
const int nbrnds=1500; // nombre max de noeuds + 1
const int nbrelts=1500; // nombre max d'elements+ 1
long double x[nbrnds],y[nbrnds],z; // vecteurs des x et y de chaque nd et z=0
int nd,nbnds,nbelts; // numeros et nbres de nds et d'elts réels
int i,j,fin,a1,a2,a3;
char as[20],voir;
std::string a,nelt;
// cette procedure lit le fichier de maillage pour extraire les nds,x,y,elts,nd 1 2 3
void lire_maillage()
{
fstream lire;
lire.open("fichier.txt",ios::in);
lire>>nbnds;
// vérification si le nbre de nds est accepté par le programme
if (nbnds>nbrnds)
{
cout<<"\n"<<" ### Erreur, nombre de noeuds "<<nbnds<<" dépasse 1500 ###"<<"\n";
cout<<" ### Augmentez nbrnds ou réduisez le nbre de nds ###"<<"\n"<<"\n";
exit(0);
}
// lecture des coordonnées des noeuds
for (i=1;i<=nbnds;i=i+1)
{
lire.precision(24);
lire.width(20);
lire>>nd>>x[i]>>y[i]>>z;
}
lire.close();
}