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 :

Concaténer string+int


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Points : 16
    Points
    16
    Par défaut Concaténer string+int
    Bonjour,
    j ai voulu concaténer string+int dans un variable afin de l'utiliser aprés
    j ai fait ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;i++)
    {
    name="obstacle"+i;
    cout<<name;
    }
    mais il m'as affiché ça
    obstacle
    obstacl
    obstac
    obsta
    obst
    ...
    ..
    o
    c 'est pour ça j ai essayé de travailler avec la fonction to_string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name=std::string("obstacle")+std::to_string(i);
    il m'as donné ce code d’erreur
    std::to_string' : ambiguous call to overloaded function

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Le rapport avec le C++/CLI ?
    Arithmétique de pointeur, c'est sale.

    Le code suivant fonction correctement en compilant avec VS2012
    (même s'il est moche )
    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 "stdafx.h"
    #include <iostream> 
    #include <string>
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	std::string name;
    	int n = 10;
    	for(int i=0;i<n;i++)
    	{
    		name=std::string("obstacle")+std::to_string(i);
    		std::cout<<name;
    	} 
    	return 0;
    }

  3. #3
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;i++)
    {
    name="obstacle"+i;
    cout<<name;
    }
    Alors en code ascii tu a "obstacle" + NUL puis "obstacle" + SOH.

    Il faut donc que tu "translate" dans la table ascii.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;i++)
    {
    name="obstacle"+'0'+i;
    cout<<name;
    }

  4. #4
    Membre émérite Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Points : 2 612
    Points
    2 612
    Par défaut
    Il y a aussi les stringstream, tu peux faire un truc comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::stringstream ss;
    ss << "obstacle" <<  i;
    name = ss.str();

  5. #5
    Membre habitué Avatar de robinsondesbois
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2012
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 171
    Points : 173
    Points
    173
    Par défaut
    Très utile pour le parsing de ficher d'ailleurs.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par mielle Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<n;i++)
    {
    name="obstacle"+i;
    cout<<name;
    }
    Pourquoi ne fais-tu tout simplement pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(int i=0;i<n;i++)
        cout << "obstacle" << i;

Discussions similaires

  1. [2000] Concaténation string
    Par Débéa dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 22/12/2006, 08h50
  2. [débutant] cast string->int
    Par gigigao dans le forum Visual C++
    Réponses: 8
    Dernier message: 23/08/2006, 11h47
  3. Problème de conversion string->int
    Par seheiahs dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 10h42
  4. [C#] Convertion de type (string/int)
    Par M1000 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/05/2006, 16h03
  5. fonction transformation string->int
    Par Edta dans le forum Général Python
    Réponses: 3
    Dernier message: 11/04/2006, 13h03

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