Bonjour à tous!

J'ai besoin de lire un fichier txt du style:

3
Vega
23.698
Rigel
1256.987
Beltegeuse
54.87
et d'en récupérer les données numériques et les chaines de caractères.
Pour ca j'ai écrit le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
#include<stdio.h>
#include<stdlib.h>
 
main()
{
   char *tab1[200];
   float tab2[200];
   int n,i;
   float luminosite_etoile;
   char nom_etoile[40];
 
   system("clear");
 
   FILE *donnees;
   donnees=fopen("donnees_exo.txt","r");
 
   /* lecture du fichier de donnees puis fermeture du fichier*/
   fscanf(donnees,"%d",&n);
 
   for(i=0;i<n;++i)
   {
      fscanf(donnees,"%s",nom_etoile);
      fscanf(donnees,"%f",&luminosite_etoile);
      tab1[i]=nom_etoile;
      tab2[i]=luminosite_etoile;
   }
   fclose(donnees);
 
   /* affichages*/
   for(i=0;i<n;++i)
   {
      printf("luminosite%d = %f\n",i+1,tab2[i]);
   }
   printf("\n\n");
 
   for(i=0;i<n;++i)
   {
      printf("nom de l'étoile %d = %s\n",i+1,tab1[i]);
   }
   printf("\n\n%s",tab1[0]);
}
Ca marche pour lire les données numériques et les placer dans le tableau tab2 mais pas pour les chaines de caractères. Il semble que seule la dernière soit lue ("Beltegeuse") et tous les éléments du tableau tab1 sont "Beltégeuse".

Quelq'un a une idée?

Merci.