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 :

recherche commande de lecture de ligne


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Par défaut recherche commande de lecture de ligne
    Bonjour à tous.

    J'ai un projet informatique en C et dans ce cadre j'ai besoin de lire un fichier texte qui rentre par l'entrer standard stdin.

    dans ce fichier, il y a lein de ligne avec plein de chose que je traite (via des fgets), jusqu'à arriver à une ligne qui contient des flottants en ligne séparé par des tabulations. J'aurais besoin de les lire un par un. Je ne connait pas le nombre de chiffre qu'il y dedans.

    Donc je cherche une commande qui pourrai me permettre de faire cela.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Tu travailles sous Linux / Unix ? Tu lances ton programme en ligne de commande ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Par défaut
    Pour appeler le programme j'utilise la commande UNIX suivante :

    cat conf.txt | ./prog > sortie.txt

    Le programme s'appelle "prog", pour la sortie sur stdout j'ai pas de problème, pour l'entré, j'ai plus de mal, elle est contenue dans conf.txt

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonjour,

    Une petite précision:
    le pipe provoque le chainage de la sortie standard du programme de gauche dans l'entrée standard du programme de droite.

    En l'occurence, le stdin de ./prog contiendra exclusivement le stdout de cat, c'est à dire le contenu de conf.txt. Mais ce n'est pas le fichier lui-même.

    Supposont que ton fichier contiennent cette fameuse ligne tabulée.
    Si tu sais combien il y a de colonne, tu peux utiliser un scanf.
    Dans le cas de trois entrées, ca donnerait (si %f est bien la lecture d'un float):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%f\t%f\t%f", &f1, &f2, &f3);

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Par défaut
    Justement c'est ça le problème c'est que je ne connait pas le nombre de colonne à l'avance, d'où mon problème , je ne peut donc pas utiliser scanf .

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par dragonlost Voir le message
    Justement c'est ça le problème c'est que je ne connait pas le nombre de colonne à l'avance, d'où mon problème , je ne peut donc pas utiliser scanf .
    Bonjour.

    Il ne te reste plus donc plus qu'à parser tes lignes. Tu charges les lignes entières et tu extrais les textes séparés par des \t. Une boucle avec strstr(); devrait faire l'affaire je pense.

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    si, en étant malin.
    Tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(scanf("%f", &f)==1) {/*utiliser f*/}
    .

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

Discussions similaires

  1. lecture et recherche d'expression sur une ligne
    Par valdano dans le forum Linux
    Réponses: 9
    Dernier message: 04/05/2012, 19h36
  2. Réponses: 0
    Dernier message: 31/10/2011, 17h17
  3. [MS-DOS]Recherche d'un poste en ligne de commande
    Par Kcirtap dans le forum Windows XP
    Réponses: 4
    Dernier message: 26/03/2007, 12h30
  4. pb lecture de ligne dans un texte
    Par bidoo dans le forum C++
    Réponses: 4
    Dernier message: 22/10/2005, 13h23
  5. Recherche commande - Paquets entrants
    Par nicolas66 dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 14/10/2005, 22h38

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