Acceder au contenu d'un fichier texte

khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007 - 8 mars 2007 à 15:49
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007 - 9 mars 2007 à 15:54
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

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 mars 2007 à 01:23
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.
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
9 mars 2007 à 09:41
Salut, qu'est-ce que tu entend par récupérer les pts sous forme de vecteurs ?
0
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 10:46
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>
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
9 mars 2007 à 10:56
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 11:05
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
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
9 mars 2007 à 11:06
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;
0
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 11:13
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
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
9 mars 2007 à 11:21
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
0
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 11:35
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!
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
9 mars 2007 à 14:38
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
0
khadioua Messages postés 6 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 15:54
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! 
0
Rejoignez-nous