Charger fichier txt dan tableau

hazemwannous Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2008 - 2 févr. 2008 à 05:34
hazemwannous Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2008 - 2 févr. 2008 à 16:09
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

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
2 févr. 2008 à 10:33
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
0
hazemwannous Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2008
2 févr. 2008 à 13:41
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
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 févr. 2008 à 14:35
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++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 févr. 2008 à 14:38
"

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++ (@++)<!--
0

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

Posez votre question
hazemwannous Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2008
2 févr. 2008 à 15:54
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
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 févr. 2008 à 16:05
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++ (@++)<!--
0
hazemwannous Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2008
2 févr. 2008 à 16:09
Oui, tu parle sur = =, t'as raison mais c'est une faute de frape ici, mais surement pas dans le prog....
0
Rejoignez-nous