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 :

Problème avec fscanf


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Problème avec fscanf
    Bonjour,

    Je cherche à faire une lecture sequentielle sur un fichier formater. Rien de plus simple me diriez-vous, mais plus habitué au Fortran je galère un peu...

    Voici mon code :

    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
    FILE *datei;
    datei = fopen ("init.txt", "r");
     
     
     
    if (datei == NULL) {
           cout << "Öffnungfehler" << endl;
           system("PAUSE");
           };
     
    fscanf(datei, "%d\t%d\n",&nx ,&nt );
     
    cout << "nx = " << nx << " nt = " << nt;
     
     
     
    cout << "prout" << endl; 
    fscanf(datei, "%Lf\t%Lf \n", &Delta_x, &Delta_t);
    cout << "Dx  " << Delta_x ;
     
    cout << "prout" << endl;
     
    fscanf(datei, "%lf\t%lf\n", &nu, &lambda);
    Et voici le fichier init.txt

    3 10
    1e-006 1e-6
    1 50

    En passant j´aimerais savoir si il est possible de rajouté du texte, qui ne soit pas lu, dans mon fichier init.txt.

    Par exemple

    3 10 //nx, nt
    1e-006 1e-6 //Delta_x, Delta_t
    1 50 //nu, lambda


    Merci de votre attention

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par renlel
    Je cherche à faire une lecture sequentielle sur un fichier formater. Rien de plus simple me diriez-vous, mais plus habitué au Fortran je galère un peu...
    Si tu veux moins galérer je te conseille déjà d'utiliser les stream de la SL pour lire les fichier ( http://c.developpez.com/faq/cpp/?page=fichiers)

    En passant j´aimerais savoir si il est possible de rajouté du texte, qui ne soit pas lu, dans mon fichier init.txt.
    Oui il suffit d'ignorer le texte après un tel caractère, ce n'est pas très dûr à faire.
    Fiquet
    - FAQ SDL
    - FAQ C++

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    J´ai déjà lu ce cette FAQ, ma question est plutot : comment faire la lecture sequentielle ? Comment fscanf comprend le passage à la ligne ? Avec l´ajout de \n dans le format ?

    Les différents cours en ligne et la FAQ ne m´ont pas éclairé à ce sujet...

    Merci pour ton aide.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J´ai déjà lu ce cette FAQ, ma question est plutot : comment faire la lecture sequentielle ? Comment fscanf comprend le passage à la ligne ?
    LA FAQ C++ ne parle pas de fscanf. Elle parle de flux, qui prennent le retour à la ligne tout comme la tabulation ou encore l'espace pour séparateurs.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    En fait j´ai besoin de lire des nombres formatés. J´ai essayé avec des long double et le format %Lf mais cela ne marche pas ...

    Bon avec %lf et des long cela marche (tant pis pour la precision c´un programme de modélisation numérique).

    Mais maintenant il veut plus fermer... cela plante au moment du fclose...

    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
        FILE *datei;
        datei = fopen ("init.txt", "r");
     
     
        if (datei == NULL) {
                  cout << "Öffnungfehler" << endl;
                  system("PAUSE");
                  };
     
        fscanf(datei, "%d %d\n",&nx ,&nt );
     
        cout << "nx = " << nx << " nt = " << nt;
     
        cout << "prout" << endl; 
        fscanf(datei, "%d %lf\n", &nx, &Delta_t);
     
        cout << "Dx  " << nx << " " << Delta_t ;
     
        fscanf(datei, "%lf %lf", &nu, &lambda);
     
        cout << nu << " " << lambda << endl;
     
     
        fclose(datei);
    Pourtant j´ai bien fait attention à ne pas mettre de retour à la ligne pour le dernier scan. Comprends pas, si quelquún à une idée elle sera la bienvenue.

    Merci

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    T'as vraiment l'air de tenir à fscanf...

    C'est juste pour que ton problème ne soit pas résolu trop vite ?

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Ok, je suis un peu lourd...!

    J´avais pas compris... On peut utiliser ofstream pour un fichier lecture et ifstream pour l´écriture. J´ai pas encore trop compris la syntaxe et les paramètres, il y l´air d´en avoir plusieurs (des syntaxes aussi !?). Bon cela me fait un peu de lecture.

    Merci de m´avoir mis le nez dessus, on se rend pas compte quand on insiste qu´on s´enfonce...

    A bientot

  8. #8
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par renlel
    On peut utiliser ofstream pour un fichier lecture et ifstream pour l´écriture.
    Oui sauf que c'est l'inverse (ofstream pour l'écriture, ifstream pour la lecture).

    Effectivement cela t'aideras de lire ceci et tu verras que l'utilisation des flux est très facile .
    Fiquet
    - FAQ SDL
    - FAQ C++

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

Discussions similaires

  1. Problème lecture fichier avec fscanf
    Par hypto dans le forum C
    Réponses: 7
    Dernier message: 18/11/2013, 16h57
  2. Problème avec fscanf
    Par lilmeth dans le forum Débuter
    Réponses: 8
    Dernier message: 23/05/2008, 13h56
  3. Problème avec fscanf, bug ?
    Par alainlc dans le forum Bibliothèque standard
    Réponses: 10
    Dernier message: 27/03/2008, 16h54
  4. Problème avec fscanf
    Par Bebert71 dans le forum C
    Réponses: 2
    Dernier message: 08/01/2007, 19h09
  5. Problème de lecture d'entête BMP avec "fscanf".
    Par Pragmateek dans le forum C
    Réponses: 8
    Dernier message: 26/06/2006, 09h08

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