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 :

copier un char dans une string


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut copier un char dans une string
    bonjour

    petite question bete mais la je bloque betement, je suis ceetain de l avoir deja fait , mais le je ne voie pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FILE* flux
    char buff [500];
    flux = popen (" blablablablabl","r");
    fgets(buff,500,flux);
    string ligne ;
     
     
    while (!eof (flux))
    {
     
    printf(" %s",buff);
    ici je voudrai copier le buff dans ma string ligne mais je ne sais pas comment


    la jevoudrai mettre un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (ligne.compare(0.24"blablablabal"==0)
    {
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::string ligne( buff );
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string ligne;
    ligne += buff;

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Une question peut être idiote, mais qui n'est due qu'au manque de précision que tu as donné...

    Pourquoi ne pas, tout simplement, utiliser un ifstream et directement lire la ligne avec une std::string, sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    std::ifstream ifs("mon_fichier.txt");
    std::string ligne;
    while(std::getline(ifs,ligne))
    {
       // ce qui doit être fait pour la ligne lue
    }
    On ne le répètera jamais assez: il est toujours conseillé de préférer les outils propres au C++ aux capacités héritée du C

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    merci pour l info.

    bien... ce que je fait avec popen, c est recupere la sortie (console) d un programme. et il me semble que popen etait tout conseiller pour ca.

    et je ne sais pas si ifstream peux executer un prog et recupere ca sortie.
    docn j y suis aller avec ce que je connai

    ifstream peu le faire ?? il me semble que non..

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    popen est une fonction C, ça ne génère donc pas un flux C++. Tu peux wrapper ça, cependant.
    Si tu utilises GCC, tu peux utiliser une de ses extensions qui permet de créer un flux à partir d'un file descriptor (ça doit être __gnu_cxx::stdio_filebuf)

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 109
    Points : 48
    Points
    48
    Par défaut
    eu la je dois dire que je n ai rien compris.

    car avec popen, je parvien a executer et recupere le flux de mon programme, et apres je cherche juste a parser ce flux.

    et a part mon pb de convertion (trop bete) ca fonctionne bien pourtant,

    j utilise en effet gcc pour compiler

    mais pour le reste j aimerai des eclairsissement si possible pour que je me couche moins bete .
    merci

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Excuses moi, je n'avais pas percuté sur le fait que, ce que tu voulais récupérer, c'était la sortie console d'un autre programme...

    A ce niveau là, le plus facile est sans doute d'appeler l'autre programme en demandant d'effectuer la sortie sur un fichier temporaire, puis de relire le fichier de manière classique

    Cela prendrait la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main()
    {
        system("test.exe >>fichier.txt");
        ifstream ifs("fichier.txt");
        /* traitement du fichier obtenu */
        return 0;
    }
    Il existe d'autres possibilités que certains estimeront sans doute plus propres à base de tube ou de pipes, mais elles seront sans doute bien plus compliquées

    Sinon, mais c'est limité à l'application en cours, tu peux toujours envisager de rediriger le flux de sortie standard vers un flux de conversion, en te basant par exemple sur l'entrée de la FAQ correspondante, et, utiliser ce flux de conversion pour récupérer les données qui t'intéressent

Discussions similaires

  1. Copier le contenu d'un xml dans une string
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2013, 15h16
  2. [PowerShell] Gestion de "spécial char" dans une string: Invoke-Expression
    Par messinese dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/05/2012, 13h52
  3. chercher une sequence de char dans un String
    Par gigabit32 dans le forum Langage
    Réponses: 8
    Dernier message: 23/08/2011, 02h38
  4. Copier un fichier *.txt dans une string
    Par LGnord dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 23/05/2008, 14h03
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

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