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 fichier texte avec fscanf


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut lire un fichier texte avec fscanf
    bonjour,

    j'ai le fichier texte suivant
    #lambda #tx_act #nb_moy_cl #tmps_moy_rep
    1.000000e-01 0.000000e+00 0.000000e+00 0.000000e+00
    1.000000e-01 0.000000e+00 0.000000e+00 0.000000e+00
    1.000000e-01 0.000000e+00 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 9.304329e-03 0.000000e+00
    1.000000e-01 9.304329e-03 1.155528e-02 0.000000e+00
    et je veux récuperer les valeurs d'une ligne précise , j'ai essayé de lire la derniere ligne par exemple avec ce code là et j'ai pas réussi à avoir un résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    F = fopen(nom_fic_res,"r");
    		if (F==NULL) {fprintf(stderr,"Pb ouverture : %s\n",nom_fic_res); exit(1);}
    		fseek(F, 0, SEEK_END);
    		fseek(F, -52, SEEK_CUR);		
     
    		double v1,v2,v3,v4;
    		fscanf(F,"%e %e %e %e",v1,v2,v3,v4); 
    		fclose(F);
    		printf("%e %e %e %e \n",v1,v2,v3,v4);
     
    		exit (0);
    est ce que quelqu'un peu m'aider SVP ?

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    N'oublie pas qu'il faut passer des pointeurs avec scanf() et cie (sauf pour les tableaux de caractères, qui sont implicitement convertis en pointeurs vers leur premier élément).

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    oui oui je sais, même avec les & et ca ne marche pas , au fait dans ce cas là j'ai une erreur de segmentation et quand je faisais une lecture depuis le depus du fichier j'avais ca :
    0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 ce qui n'est pas le bon résultat.

    Ce qui pourrait m'aider c'est ce comprendre comment lit le fscanf, est c'est caractère par caracètre ou bien nombre par nombre, et y a t'il un moyen de lire ligne par ligne?

    merci

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    De plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fseek(F, 0, SEEK_END);
    fseek(F, -52, SEEK_CUR);
    n'ont pas un comportement standard pour un fichier texte et tu risque fort d'avoir de mauvaises surprises.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    comme une erreur de segmentation , mais est ce que vous pouvez me dire comment faire pour lire par exemple la 2eme ligne et la derniere.

    merci.

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    oui oui je sais, même avec les & et ca ne marche pas , au fait dans ce cas là j'ai une erreur de segmentation et quand je faisais une lecture
    Tu ne les as pas mis pour le printf, j'espère ?


    Ce qui pourrait m'aider c'est ce comprendre comment lit le fscanf, est c'est caractère par caracètre ou bien nombre par nombre,
    Ca dépend du format utilisé

    et y a t'il un moyen de lire ligne par ligne?
    fgets()

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    euh mais fgets ne permet pas de lire à partire d'un fichier ?

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Bien sûr que si !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    enfin de compte j'ai utilisé fscanf il fallait juste bien compter le nombre de caractère pour bien déplacer le pointeur du fichier.

    Merci pour votre aide

Discussions similaires

  1. Réponses: 23
    Dernier message: 29/04/2014, 23h31
  2. Lire un fichier texte avec différents champs
    Par Propyle49 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/04/2010, 11h40
  3. Réponses: 13
    Dernier message: 07/07/2008, 14h29
  4. Réponses: 7
    Dernier message: 04/07/2008, 17h25
  5. [C++] Lire un fichier Texte avec SDL
    Par d-jey dans le forum SDL
    Réponses: 8
    Dernier message: 26/05/2006, 02h38

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