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 :

Fscanf + juste le mot


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Par défaut Fscanf + juste le mot
    Bonjour,

    je voudrais savoir si il serait possible, par exemple de recuperer juste le mot dans :
    j'avais esayer un scanf mais il s'est arreter au premier séparateur, alors que jorai bien voulu qu'il s'arrete à la fin du mot (-> \0)
    Mais je ne trouve pas
    En gros:
    je recupere "un" mais au prochain appel a fscanf, je suis sur le 1 1et2

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    je voudrais savoir si il serait possible, par exemple de récupérer juste le mot dans ...
    C'est vraiment difficile pour toi d'expliciter carrément ce que tu veux avoir en retour ? Juste le mot c'est "un" ? ou "un et", ou "unet" ... ?

    Pour saisir une ligne utilise fgets. Tu parcours ensuite la chaîne et copies dans un nouveau tableau tout ce qui est une lettre (isalpha va sûrement t'aider). N'oublie pas de terminer par un '\0'.

  3. #3
    Membre confirmé Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Par défaut
    la je veu juste recuperer le mot "un" (fonction lire_mot)
    (fonctions annexes:
    _ lire_entier
    _ lire_caractere
    )

    en fait, si l'entier lu est 1..je lis un coup sur deux un mot ou un caractere
    et donc chaque fonction me réenvoie ce qu'elle doit faire:
    char*
    int
    char

    Algo:
    le lit un entier : ici 1
    le lit un mot: "un"
    je lit un entier : ici 1
    je lit un caractere " "
    je lit un entier : ici 1
    je lit un mot : "et"
    je lit un entier : ici 2
    le caractere existe deja je cherche dans ma liste en position 2

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Il y a getchar qui permet de lire sur l'entrée standard caractère par caractère et isalpha, isdigit, isspace, etc. pour récupérer le "type" d'un caractère (lettre ou chiffre ou espace, etc.). Je ne vois pas où est ton problème.

  5. #5
    Membre confirmé Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Par défaut
    cela serait plutot un fgetc non ? (comme je lis depuis un fichier)

    parce que moi je pensais, pour lire mon mot, je lis jusqu'à temps que je trouve une nombre (appelle a fscanf(input, "%c", tmp)) mais le probleme est que arrivé à ce chiffre, j'arrête ma boucle certe mais qd je vais vouloir relire dans mon fichier, ce chiffre la sera deja lu donc je lirai apres...
    Je ne sais pas si cela est tres clair

    1ere etape : j'écris dans le fichier (a l'aide de fprintf(...), %s, %c, %d)
    1un1 1et22

    2eme etape : je lit dans le fichier
    _un chiffre : 1
    _un mot : "un"
    _un chiffre : 1
    _un caractere :" "
    etc...

    mais quand je veux lire le mot, je lis "un1" avec le fscanf..il ne s'arrête pas si il trouve un \0..

    Idée : quand l'écire, a l'aide de fprintf(output, "%s", mot), est-ce que le caractere \0 est présent
    explicitement:
    1un\01 1et\0
    (le \0 ce mettant uniquement pour les mots, dû au %s)

  6. #6
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    je dois pas tout avoir compris, mais je sais que flex et bison (lex et yacc) seront surement tes amis. A tout casser tu dois en avoir pour 10 lignes en lex
    @+
    trax

Discussions similaires

  1. Extraction de mots clés
    Par Olive1808 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/02/2016, 20h49
  2. Le mot "Array" juste avant mon affichage
    Par baggie dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2012, 17h15
  3. mot de passe expire juste après la création
    Par batou22003 dans le forum AIX
    Réponses: 0
    Dernier message: 07/11/2011, 10h23
  4. Couper une String juste aprés un mot
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/07/2010, 09h16
  5. [Traduction][Néerlandais]Juste quelques mots
    Par henderson dans le forum La taverne du Club : Humour et divers
    Réponses: 15
    Dernier message: 24/08/2006, 13h52

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