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 :

lire un ficher texte et l'afficher


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut lire un ficher texte et l'afficher
    Pour lire les données dans un fichier j'ai utilisé 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
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<conio.h>
    int main()
    {
    int INPUT[100];
    FILE *ReadInput;
     
    ReadInput = fopen("D:\\Documents and Settings\\Administrateur\\Bureau\\100_1.txt","r" ) ;
     
     
    for (int i=0 ; i<100 ; i++)
    {
    fscanf(ReadInput,"%i",&INPUT);
    }
     
    fclose(ReadInput) ; 
    for (int i=0 ; i<100 ; i++)
    {
    printf("%i\n",INPUT);
    }
     getch () ;
    }
    Les elements dans le fichier signal.txt sont placés de cette maniere, par example:
    0 114 1268 70 5342, 70 53 42


    au cours de l'execution les elements de tableau input sont plutot diffétent
    exp : 2345
    2345
    2345
    2345


    Merci d'avance si vous en savez quelque chose!

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 125
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Vous n'utilisez pas votre tableau correctement (il est même probable que votre compilateur indique des messages d'avertissements).

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i=0 ; i<100 ; i++)
    {
    fscanf(ReadInput,"%i",&INPUT);
    }
    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i=0 ; i<100 ; i++)
    {
    fscanf(ReadInput,"%i",&INPUT[i]);
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i=0 ; i<100 ; i++)
    {
    printf("%i\n",INPUT);
    }
    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i=0 ; i<100 ; i++)
    {
    printf("%i\n",INPUT[i]);
    }
    Car lorsque vous utilisez un tableau, pour accéder à un élément dans celui-ci, il faut indiquer l'indice de l'élément (son emplacement) à l'aide de la syntaxe suivante: tab[index]
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour à tous,

    C'est vraiment sur que le fichier contient 100 enregistrements . Que se passe t il si il en contient moins ou plus ? (c'est pas beau).

    fscanf(ReadInput,"%i",&INPUT);
    j'aurais plutôt écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fscanf(ReadInput,"%d",&INPUT[i]);
    Page sur Developpez : http://pbriand.developpez.com

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Par défaut
    Et sinon pourquoi ne pas utiliser fgets et atoi? Je pense que c'est la méthode la plus propre.

    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
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<conio.h>
    int main()
    {
    char buffer[16];
    int INPUT[100];
    FILE *ReadInput;
     
    bzero(buffer, 16);
    ReadInput = fopen("D:\\Documents and Settings\\Administrateur\\Bureau\\100_1.txt","r" ) ;
     
    for (int i=0 ; i<100 ; i++)
    {
      (void)fgets(buffer, 16, ReadInput);
      INPUT[i] = atoi(buffer);
    }
     
    fclose(ReadInput) ; 
    for (int i=0 ; i<100 ; i++)
    {
    printf("%i\n",INPUT);
    }
     getch () ;
    }

Discussions similaires

  1. afficher ficher texte dans une liste
    Par crush911 dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2011, 15h36
  2. Lire un fichier texte et afficher
    Par ApheX2 dans le forum Composants
    Réponses: 1
    Dernier message: 24/01/2009, 16h33
  3. Réponses: 13
    Dernier message: 07/07/2008, 14h29
  4. Réponses: 7
    Dernier message: 04/07/2008, 17h25
  5. Réponses: 2
    Dernier message: 19/10/2006, 09h43

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