IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lecture fichier texte


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Par défaut Lecture fichier texte
    Bonjour,

    Dans le fond, j'ai besoin de récuperer des chaines de caractères et des chiffres dans une fichier texte, cependant ce qui arrive, c'est que le code que le professeur nous a donné ne doit pas être changé, mais on peut ajouter des nos lignes de codes

    le contexte c'est de récuperer:
    les listes de cours d'un université
    le matricule des étudiant
    les cours à la quelle ils sont inscrit
    le nom, le prénom
    et la note qui ont eu à chaque de ces cours

    voici le code donné par le prof

    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
     
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
     
     
    #define MAX_ETUDIANTS 100 
    #define TAILLE_CHAINE  50		
    #define TAILLE_CHAINE_F  256	
    #define MAX_COURS 5			
    #define NB_COURS_OFFERTS 30	
    #define OK 1
    #define ERREUR 0
    //....
    void chargementDonnees(FILE* pFich, EnsembleEtudiants* bdEtudiant,
    		char nomsCours[NB_COURS_OFFERTS][TAILLE_CHAINE + 1])
    {
        int i=0;
        char ligne[TAILLE_CHAINE];
        while (fscanf (pFich, "%s", ligne) != EOF)  /// pFich étant initiallement déjà chargé
        {
            if (strcmp(ligne, "$") != 0)
                 {
                     printf("%s\n", ligne);
                 }
    //..
        }
    //..
    }
    //...
    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
    typedef struct
    {
    	char* unCours;	// un pointeur sur un cours (i.e. cha�ne de caract�res) 
    	float note;		// la note du cours 
    }Cours;				
     
    typedef struct
    {
            int matricule;				        // matricule d'un étudiant 
    	char prenom[TAILLE_CHAINE + 1];	// son prènom 
    	char nom[TAILLE_CHAINE + 1];	        // son nom 
    	int nbCours;					// nombre de cours suivis 
    	Cours  coursSuivis[MAX_COURS];	// nom et note de chaque cours suivi 
    }Etudiant;
     
    typedef struct
    {
    	Etudiant tabEtudiants[MAX_ETUDIANTS];	// un tableau d'étudiants 
    	int nbEtudiants;	// la cardinalité du tableau tab (i.e. le nombre effectif d'éléments)
    }EnsembleEtudiants;
    le problème c'est que je voudrais récupérer chaque matricule, chaque nom, prénom, note de cours et autre dans une varibale de strcuct différent, mais le problème c'est le varible lignequi est déjà définit comme un string, alors que le matricule est une chiffre, de plus toute le fichier est pas uniforme chaque élément est pas dans une ligne, le fichier texte est ainsi:
    ...
    meta-physique
    physique_des_solides
    physique_des_fluides
    informatique_theorique
    introduction_a_la_logique_des_predicats
    cryptographie
    mecanique_classique
    marketing_de_masse
    histoire_de_la_revolution_francaise
    $
    302 Ali Muhammad 3
    programmation_I 83.0
    algebre_vectoriel_et_matriciel 77.0
    physique_des_solides 45.0
    403983 Roosevelt Theodore 4
    politique_exterieure_des_etats-unis_d'amerique 59.0
    micro-economie 69.0
    biologie_cellulaire 78.0
    ....
    le seul chose qui permet de faire le tansfert vers les info des étudiant c'est le caractère $

    merci d'avance de vos réponse

    si vous voulez plus de détail demandez-moi là, le programme est comme constitué de beaucoup de ligne de code

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int Etudiant = 0 ;
     
    if  ( ligne[0] == '$' )
       {
          /* Etudiant */
          Etudiant = 1 ;
       }

    Ensuite, tu auras besoin de sscanf ou strtok et atoi..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture fichier texte
    Par vince-60 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/04/2006, 14h15
  2. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  3. lecture fichier texte et ...
    Par Nils30 dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2006, 11h55
  4. lecture fichier text et renvoi du contenu en byte *
    Par JulienT dans le forum Réseau
    Réponses: 3
    Dernier message: 02/01/2006, 13h21
  5. Lecture fichier text
    Par krfa1 dans le forum ASP
    Réponses: 13
    Dernier message: 25/11/2005, 08h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo