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 :

un des paramètres de "insert"


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut un des paramètres de "insert"
    Bonjour à tous!

    Cette expression ne me plait pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Blc = Blc.insert ( 0 , xyzlarg , '.' ) ;
    //////////////////////////
    cout<<"chiffre/lettre/expr ";cin>>qqchose;
    blc = blc.insert ( 0 , xyzlarg , qqchose ) ;
    Je voudrais pouvoir faire un choix et remplacer '.' par une expression mais laquelle?
    Char marche mal:char[str],string non plus!
    Par exemple choisir un chiffre(dans une liste cohérente)
    qui apparait à la place de '.'
    ou une lettre.

    Avec mes remerciements pour une idée évidente pour vous.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    qqchose doit être un caractère (de type char) et non pas une chaîne de caractères.

  3. #3
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Merci:c'est ce que j'ai recommençé à écrire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //c'est une fonction avec un cin>>carac;
       int carac=xyzcarac;
        char str[carac];//quelque chose...
        Blc=Blc.insert(0,xyzlarg, str[carac]);
    Maintenant çà marche.
    Merci à tous et spécialement à cob59(les gars du nord?)

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //c'est une fonction avec un cin>>carac;
       int carac=xyzcarac;
        char str[carac];//quelque chose...
        Blc=Blc.insert(0,xyzlarg, str[carac]);
    Tu as conscience que str[carac] adresse en dehors du tableau, les indices varient de 0 à (n-1) en C++ ?

    En C++, les chaînes c'est std::string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        std::string str(xyzcarac,carac);//quelque chose...
        Blc=Blc.insert(0,str.length(), str.c_str()/*?*/);

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    En fait il doit écraser son null-character de fin de chaîne.
    J'imagine que str est dans son main(), sinon ça doit faire villain à la désalloc

    senvedgi> Attention, tu confonds char (un caractère) et char[] (un tableau, ou une "chaîne" de caractères). Ton premier extrait de code fonctionne, mais qqchose doit être déclaré en type char

  6. #6
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Bonjour et merci!
    Je savais que les tableaux de n lignes commençent à 0 et vont jusqu'à n-1.
    Je viens d'apprendre que #include<string> et std::string font double emploi.
    Je redécouvre /*un mot*/ et découvre son usage comme commentaire par exemple dans une ligne de code.Cela va me resservir.
    Dans une fonction
    ma ligne de code Blc cherche à reproduire N fois un caractère
    écriture 0...........(position 1)
    écriture xyzlarg....(p fois)
    écriture str[char]..(le caractère n° N)
    Avec ce/mon cahier des charges je n'arrive pas à me servir de vos lignes optimisées pour ne pas être en dépassement.
    Il faut passer de char à string je pense?
    --------------------------------------------------------
    20déc2011:j'espère que je n'ai pas fâché?
    Finalement cette fonction de création de tableau vierge je l'abandonne car elle me pose trop de problèmes inutiles.
    C'était pour pouvoir recréer des tableaux vides et "propres" de diverses grandeurs(# de dimension) et les recopier sur des fichiers donc "propres".
    Le code étant très simple ces tableaux seront créés à la demande.
    Merci à tous de m'avoir suivi et lu.
    (résolu pour certains,pas résolu pour d'autres...)

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