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 :

chercher un format specific dans une ligne string


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Par défaut chercher un format specific dans une ligne string
    bonjour,

    je voudrais chercher un format de string dans une ligne donnee sachant que cet format sera XX:YY, X et Y etant des nombres entiers... je voudrais ensuite mettre XX et YY dans des variables de type int minutes et int secondes.

    un example de lignes lues seraient

    Gershwin,_Rhapsody_In_Blue 13:22 Gershwin,_George Masters_of_the_Roll,_Volume_05 Classical 1

    je voudrais obtenir 13 la mettre dans "int minutes" et 22 dans "int secondes". Et ce pour chaque ligne.

    ma lecture se fait avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    using namespace std;
     
    main()
    {
        vector <string> lines(0);
        string s,title;
        int i;
        ifstream infile("exemple.txt");
     
        while (!infile.eof()) {
              getline(infile, s);
              if (!infile.fail()) lines.push_back(s);
              }
        for (i = lines.size()-1; i >= 0; i--) {
          /* exclusion des tirets du bas en les replacant par des espaces */
          int position = lines[i].find("_"); 
              while (position != string::npos) 
              {
                lines[i].replace(position,1," ");
                position =lines[i].find("_",position+1);
                }
              }
    }
    j'ai essaye de lire chaque ligne dans la for loop en faisant :

    lines[i] >> title >> time >> auteur;

    sans success,

    des proposition sur comment proceder pour d'abord trouver les minutes et secondes et ensuite stocker les autres strings (variable et titre) dans des variables.

    merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 450
    Par défaut
    À vue de nez, j'ai envie de dire que tu t'emmerderais largement moins à faire ça en Perl, par exemple, plutôt qu'en C ou C++. Avec une expression régulière, tu gagnerais beaucoup de temps.

    Mais pour l'heure, si tu veux utiliser les inserters, il faut utiliser un flux stringstream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    istringstream ss;
     
    iss.clear();
    iss.str(line[I]);
    iss >> title >> time >> auteur;
    Si tu remplaces le « : » par un espace avant de remplacer manuellement tes « _ », tu peux lire directement heure et minutes depuis ton flux.

Discussions similaires

  1. [XL-2007] Chercher une valeur dans une ligne et renvoyer le # de colonne
    Par gui-llaume dans le forum Excel
    Réponses: 2
    Dernier message: 21/02/2013, 09h39
  2. [XL-2007] format dans une ligne
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/05/2011, 14h45
  3. chercher un mot dans une ligne
    Par Fatah93 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/03/2008, 10h22
  4. chercher des occurences dans une ligne
    Par bouzaidi dans le forum C++
    Réponses: 4
    Dernier message: 03/08/2007, 09h07
  5. Chercher des mots dans une ligne
    Par chemouz dans le forum C++
    Réponses: 1
    Dernier message: 17/12/2005, 12h42

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