Acceder au contenu d'un fichier texte

Signaler
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007
-
bonjour
j'utilise Visual C++,et je voudrais fair des calcules à partir d'un fichier texte(.std)qui contient les coordonnées des points(x;y).je suis débutante en c++ et donc VC++,j'ai réussi à ouvrir le fichier,mais mon pb est comment récuperer les points sous formes de vecteurs????????je programme sous Windows!je suis vraiment perdu!car je ne trouve pas bcp de documents!
merci d'avance pour votre aide!

11 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Sous Windows, il y'a des fonctions API pour ça:
CreateFile() pour ouvrir le fichier
ReadFile() pour lire le contenu du fichier et le mettre dans un buffer (tableau)
CloseHandle() pour fermer le handle du fichier
Toute la documentation est dans la MSDN.
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Salut, qu'est-ce que tu entend par récupérer les pts sous forme de vecteurs ?
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007

bonjour
merci pour votre réponse!en fait dans ma tete je voudrais récupere quelquechose sous forme de (vecteur)(ou tableau!!!!)juste pour pouvoir calculer par exemple:  la somme des |y<sub>i<sup>2|avec yi les ordonnées et aussi j'envisage de tracer une courbe à partir des coordonnées qui sont dans mon fichier texte!
merci d'avance pour votre eventuelle coup de pousse!</sup></sub>
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Mais sous quel forme veux-tu ces points,
- 1 vecteur de points (chaque element du vecteur contient x et y)
- 1 vecteur de x et 1 vecteur de y
- autre chose
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007

en fait le vecteur c'est juste une idée mais pas forcément a bonne!!!ce que je veux faire c'est faire des calcules (ex:H=1/n somme(abs(yi)) et ensuite tracer une courbe de points:dont les coordonnées sont dans le fichier .txt.sous forme de deux colonnes séparés par un (;)la premiere colonne presente les x et la deuxiemme presente les y.
merci
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
template <class T>
class Points
{
public :
Points() :x(0), y(0) {}
Points(T x_, T y_) : x(x_), y(y_) {}

void setx (T x_) {x=x_;}
void sety (T y_) {y=y_;}
void setxy(T x_, T y_) {x=x_; y=y_;}

T getx () const {return x;}
T gety () const {return y;}
void getxy(T & x_, T & y_) {x_=x; y_=y;}

private :
T x;
T y;
};

Voici par exemple une classe Points que tu peut utiliser.

Ensuite dans ton prog :

std::vector > v_pts;
Points pt;

tu ouvre ton fichier;
while(tu récupère les infos);
{
pt.setxy(x, y);
v_pts.push_back(pt);
}

tu ferme ton fichier;
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007

wawwww!quel rapidité!permetez moi de vous en  féliciter!
juste une chose ,c'est que je débute avec les classes....si vous pourriez expliciter un tout petit peu plus!exemple:le fichier s'appelle  (fic.txt)!merci
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
template <class T>
class Points
{
  public :
    Points() :x(0), y(0) {}
    Points(const T x_, const T y_) : x(x_), y(y_) {}

    void setx (const T x_) {x=x_;}
    void sety (const T y_) {y=y_;}
    void setxy(const T x_, const T y_) {x=x_; y=y_;}

    T getx () const {return x;}
    T gety () const {return y;}
    void getxy(T & x_, T & y_) {x_=x; y_=y;}

  private :
    T x;
    T y;
};

Voici par exemple une classe Points que tu peut utiliser.

Ensuite dans ton prog :

//Créé en vecteur de Points (ici Points avec des int)
std::vector > v_pts;
Points pt;

// ouveture du fichier
FILE * fich = fopen("fic.txt");

int x, y;

while(tant qu'il reste des coordonnées à lire)
{
  fscanf(fich, "%d;%d, &x, &y);
  pt.setxy(x, y);
  v_pts.push_back(pt);
}

fclose(fich);

Pour récupérer les infos :
// 1ere coordonnée en x
int x1 = v_pts[0].getx();

//5eme coord en x et y
int x2, y2;
v_pts[4].getxy(x2, y2);

...

<hr size="2" width="100%" />TuRn3r
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007

merci c'est un peu plus claire!mais je vais encore vous déranger avec deux questions trés bétes!
1)pour la classe:je l'enregistre ou?dans le programme meme ou ailleurs???
2)est ce que vous avez une idée pour :tracer la courbe!
en tt cas vous ,meme si vous ne me répondez pas(et je le comprends)merci pour votre aide!
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
La classe, tu la met dans un fichier .hpp et pour tracer la courbe, le plus imple est d'utiliser gnuplot prog ultra simple et gratuit, cf google

<hr size="2" width="100%" />TuRn3r
Messages postés
6
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
9 mars 2007

ok!merci!vous savez c'est la premiere fois que j'utilise ce genre de forum!et je trouve que c'est trés enrichissant!la derniere est gnuplot c'est la premiere fois que j'entend parler de lui!
merci!trés bon week end !et à trés bientôt j'espere!