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 :

strtok ou sscanf


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Par défaut strtok ou sscanf
    Salut
    J'ai un souci avec strtok et je pense que sscanf ne resoudra pas mon probleme. Je m'explique:
    J'ai fait un progamme qui interprete la ligne de commande avec un tas d'option.
    Parmi les options je dis par exemple -a "bla bla" la chaine entre guillemet est alors stockée pour etre réutilisée. Sans les guillemet a chaque espace argv serai incrementer. La c'est la chaine entre les guillemets qui est stockée "pour un seul argv".
    Ce que je veux faire:
    Je lis une chaine de caractere dans un fichier. Les elements de cette chaine de caractere seront ensuite utilisés comme argument de ligne de commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                            fgets(line,BUFFSIZE,theFile);
     
                            token = strtok(line,seps);
                            i = 1;
                            while(token != NULL) {
                                inArgv[i] = token;
                                token = strtok(NULL, seps);
                                inArgc = i+1;
                                i++;
                            }
    ce bout de code marche bien mais le probleme c'est que mon séparateur est un espace et que dans ma ligne de commande j'ai un truc du genre "bla bla"

    je voudrai qu'il prenne ça comme une seule chaine de caractere mais il decompose "bla d'un coté et bla" de l'autre.

    Comment faire pour qu'en analysant ma chaine il interprete le premier guillemet comme le début d'une chaine de caractere comme c'est le cas dans la ligne de commande.

    J'espere que mon probleme est clair et merci de votre aide

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Salut,
    Je ne crois pas qu'il y ait de fonction standard pour parser les guillemets.
    Il te faudra sans doute en faire une toi-même...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    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
    Citation Envoyé par Nalido
    J'ai fait un progamme qui interprete la ligne de commande avec un tas d'option.
    Peut etre serais-tu interesse par getopt? Elle est POSIX.2, malheureusement, donc pas disponible sur tous les systemes.

Discussions similaires

  1. utilisation de strtok
    Par ghostdog dans le forum C
    Réponses: 9
    Dernier message: 25/10/2005, 08h54
  2. strtok avec plusieurs séparateurs
    Par lalaurie40 dans le forum C
    Réponses: 2
    Dernier message: 10/10/2005, 21h49
  3. problème avec strtok pour récupérer les vides
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 02/06/2005, 20h08
  4. sscanf()
    Par beloc dans le forum C
    Réponses: 6
    Dernier message: 17/04/2005, 14h56
  5. Réponses: 4
    Dernier message: 12/09/2003, 11h38

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