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 :

récuperation de '2' et '4' si on tape '24' - une idée ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut récuperation de '2' et '4' si on tape '24' - une idée ?
    Bonjour,

    je rentre un int par exemple 24, et je voudrais récuperer deux int : '2' et '4'.
    je vois pas comment faire ma fonction ...
    une idée ?

    merci

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Tu récupère ton int.
    Tu le met dans une std::string via std::ostringstream
    Tu récupère tes valeurs via []
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut segmentation fault
    je essayé en écrivant :

    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
    void split(int n, int* n1, int* n2)
    {
    	char num[100];
    cout<<"ca passe 2 !!"<<endl;
     
    	sprintf(num, "%d", n);//put the int n to the sting num
    cout<<"ca passe 3 !!"<<endl;
     
    cout<<num[0]<<"   "<<num[1]<<endl;
     
    	//put the char num[0] into the pointer n1
    	*n1=num[0]-48; //because 0 code 48 in the ASCII table
    	*n2=num[1]-48;
    cout<<"ca passe 4 !!"<<endl;
    }
    je lance avec n = 24, j'ai comme affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ubuntu@ubuntu:~/exercice1$ ./AdditionCycles 
    enter your number
    24
    ca passe 2 !!
    ca passe 3 !!
    2   4
    Segmentation fault (core dumped)
    je comprend pas vraiment pourquoi

  4. #4
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Sinon il doit y avoir plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    istringstream iss( str );
    char c;
    while ( iss >> c )
      ;

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut
    Je comprend pas ta solution NiamorH

    qu'est ce c'est : istringstream iss( str );

    et ça donne quoi : while ( iss >> c ) ??

    je met où mon int de dépard et les 2 int d'arrivé ?

    merci

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Essaie ce code chez toi :

    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
     
    #include <sstream>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
      istringstream iss( "24" );
      char c;
      while ( iss >> c )
      {
        cout << c << endl;
      }
    }
    Et regarde ce que ta console affiche. Magique ? Non il aurait suffit d'aller voir la faq, tous les éléments y sont.

    Maintenant, la seule difficulté pour toi, c'est de mettre la bonne chaîne dans l'iss.

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Tu récupère ton int.
    Tu le met dans une std::string via std::ostringstream
    Que tu passes à l'iss à la place de la chaine en dur...

  8. #8
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Oui je sais c'est pour taquiner.
    Ce que je sous entendais, c'est que sont int, ya de forte chance pourqu'il le recoive via cin (ou un autre flux)
    D'où ma remarque
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/10/2008, 12h23
  2. Intégrer villes étapes d'une expédition
    Par joecogumelo dans le forum SAP
    Réponses: 1
    Dernier message: 11/06/2008, 14h04
  3. Récuperer la taille d'un clip généré dynamiquement dans une boucle
    Par finalfx dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 20/03/2008, 22h35
  4. Réponses: 39
    Dernier message: 12/07/2007, 14h16
  5. Réponses: 3
    Dernier message: 09/11/2006, 10h25

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