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

Fortran Discussion :

[Fortran 77] Fonction read


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut [Fortran 77] Fonction read
    Bonjour,

    je veux effectuer le petit bout de programme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    program identité
    character nom*40
    
    print *, 'Quel est votre nom'
    read *, nom
    
    end program identité
    Mon problème est le suivant :

    Si je tape "René Michaud", je n'obtiens que "René" comme résultat. Le programme ne prend pas en compte "Michaud" car il y a un espace entre René et Michaud.

    Que dois-je faire pour que ma variable "nom" soit égale à "René Michaud" et non simplement à "René".

    Merci d'avance à ceux qui me répondront.

    René Michaud

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Il faut preciser le format de lecture explicitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
          program id
          implicit none
     
          character*40 nom
     
          print *, 'Quel est votre nom?'
          read '(A)', nom
     
          print *, nom
     
          end
    En plus paranoiaque, on peut aussi limiter la lecture a 40 caracteres maximum, avec le specificateur de format A40.

    PS: Il est preferable d'eviter les accents dans le code source, cela peut poser probleme pour certains (vieux) compilateurs qui codent les caracteres sur 7 bits.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    Complément à la réponse de DaZumba.

    Quand tu utilises le format * dans « read * », tu utilises un format « libre » dans lequel l'espace sert de séparateur de champs. Comme tu veux intercaller des espaces dans tes chaînes, il est donc préférable d'éviter le format list-directed (*).

    Pour les accents, je seconde DaZumba. C'est une très mauvaise habitude : les caractères accentés ne font pas partie du " character set " de Fortran.

Discussions similaires

  1. fonction read et assimilé
    Par fveysseire dans le forum C
    Réponses: 9
    Dernier message: 12/07/2006, 08h20
  2. Problème avec la fonction read.
    Par Whaouu dans le forum Langage
    Réponses: 10
    Dernier message: 23/09/2005, 10h33
  3. [Fortran 77] Fonction random
    Par ajsd0208 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/07/2005, 12h58
  4. [Fortran 90] Fonction Split()
    Par gchazelle dans le forum Fortran
    Réponses: 2
    Dernier message: 02/03/2005, 10h16
  5. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42

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