Remplir un vecteur à partir d'un fichier texte

cs_PetiteAnge Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 17 avril 2010 - 17 avril 2010 à 11:35
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 18 avril 2010 à 14:57
Bonjour,

Je vous explique mon problème: j'ai un fichier texte contenant trois colonnes séparées par des espaces: une pour les inndices des villes, une pour leurs abscisses et une pour leurs ordonnées.Je désire mettres les abscisses dans un vecteur et les ordonnées dans un vecteur.
J'ai essayé ce code mais ça marche pas:
float v[],
nom_fich = fopen(fich_nom, "r");
fscanf(nom_fich,"%d",&x);
v.push_back (x);


Je vous remercie d'avance...

2 réponses

Rockanos Messages postés 20 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 21 janvier 2011
17 avril 2010 à 16:18
Je pense que tu dois déclarer ce vecteur avant de l'utiliser.

float v[];

(t'as du oublié le ;)
N'est pas un vecteur... C'est un simple tableau de float

Pour declarer un vecteur tu dois faire :

std::vector<float> v;

et ensuite faire un push_back(x); dessus.

J'espère que mon aide t'a été bénéfique vu que j'ai connu l'existence et la méthode d'utilisation des vecteurs qu'hier.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
18 avril 2010 à 14:57
C'est mal partit tu mélanges C et C++ !

Ce n'est pas compliqué, tu utilises l'opérateur de lecture de std::ofstream, et tu stockes dans un vecteur.
Ca devrait donner, de tête (attention non testé !):

std::vector<float> tab;
std::ofstream file("nom fichier");
while (file)
{
  float x, y, z;
  file >> x >> y >> z;
  tab.push_back(x);
  tab.push_back(y);
  tab.push_back(z);
}
file.close();


_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
0
Rejoignez-nous