Charger fichier txt dan tableau

Signaler
Messages postés
9
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
2 février 2008
-
Messages postés
9
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
2 février 2008
-
Bonjour à tous ;
j'ai un problème lorsque j'essaye de lire un fichier (.txt) et stocker le continu dans un tableau. mon fichier (.txt) est de trois colonnes et contient des (int)
toto.txt
v1 v2 v3
v3 v4 v5
v6 v7 v8
- - -
-
-
voici ce que j'ai fait:
FILE *file = fopen("toto.txt", "r");
int s1[taille], s2[taille], s3[taille];
while (!feof(file))
{
fscanf(file,"%d %d %d\n", &s1[i], &s2[i], &s3[i]);
i++;
printf("juste pour verifier: %d\n", s1[i]);
    }
fclose(file2);

le printf m'affiche des valeurs qui sont pas celles dans le fichier (.txt). d'ailleurs ça affiche bien les valeurs quand j'utilise pas le tableau: : fscanf(file,"%d %d %d\n", &s1, &s2, &s3);
mais mois j'ai besoin de stocker mes valeurs dans des tableaux pour les utiliser plus tard.

merci si qq peut m'aider

7 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
21
A tu essayé en remplacant
fscanf(file,"%d %d %d\n", &s1[i], &s2[i], &s3[i]);
par
fscanf(file,"%d %d %d\n", s1[i], s2[i], s3[i]);

Cdt
Messages postés
9
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
2 février 2008

Merci bcp. j'ai résolu le problème
c'état que (!feof(file)) ne fait pas ce que j'ai pensé. et quand j'ai fait:
FILE *file = fopen("toto.txt", "r");

  if(file= NULL)
      {
      fprintf(stderr,("Erreur ouverture fichier\n"));
      exit(-1);
      }
for ( int i =0 ; i < taille; i++ )
{
fscanf(file,"%d %d %d\n", &s1[i], &s2[i], &s3[i]);
}
fclose(file)

ça marche bien.

merci quand même
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
if(file = NULL)
Déjà je peux te dire que, si fopen retourne nul, jamais ça ne sera détecté.

[auteur/LAURENT1024/523332.aspx laurent1024] >> Ben non. Si on fait ça, on passe la valeur et non l'adresse d'un emplacement dans le tableau. Or fscanf demande une adresse pour stocker les données.

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
"

if(file = NULL)
Déjà je peux te dire que, si fopen retourne nul, jamais ça ne sera détecté."
Et aussi, vue que tu assigne à file NULL, fscanf n'a aucune chance de fonctionner correctement.

C++ (@++)<!--
Messages postés
9
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
2 février 2008

Désolé de ne pas répondre plutôt, j'étais pas là.
En tout cas, cette partie de code marche et j'ai pu verifier par l'affichage des points et puis par le traçage des droites.

Mais j'ai un autre problème, mes points sont les sommets des triangles, donc j'affiche les points et j'affecte des couleur aux triangle, mais je ne sais pas comment récuperer les pixels à l'interieur de chaque triangle (sans passer par des boucles complexe).
Par contre, j'utilise OpenCv.
Est ce que qq peut me proposer une  méthode ou une fonction pour récuperer les pixels dans une zone triangulaire (en connaissant les trois sommets)???

Merci
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Je l'ignore, je n'utilise pas OpenCv.

Cependant, je peux te garantir que, si ceci se retrouve tel-quel dans ton code:
if(file = NULL)
il n'y a aucune chance pour qu'il fonctionne comme il se doit.

Un comparaison est un double égal if(file == NULL)
Un assignation est un simple égal file = NULL

C++ (@++)<!--
Messages postés
9
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
2 février 2008

Oui, tu parle sur = =, t'as raison mais c'est une faute de frape ici, mais surement pas dans le prog....