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 :

affichage de tableau char


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut affichage de tableau char
    Je souhaite afficher le prénom rentré par l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    char prenom[20];
    	cout<<"Votre prenom:\t";
    	cin>>prenom;
    	for(int k=0;k<20;k++)
    	{
    		cout<<prenom[k];
            }
    De drôle de symboles apparaissent à la suite du prénom entré.Pourriez m'expliquer pourquoi et comment corriger pour que seul le prénom apparaisse??

    Merci

  2. #2
    Membre confirmé
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Points : 533
    Points
    533
    Par défaut
    Si tu veux faire du C++, je ne saurais que te conseiller d'utiliser des strings, c'est bien plus fiable et évite pas mal de prises de tête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    std::string prenom;
    cout<<"Votre prenom:\t";
    std::getline(std::cin, prenom);
    cout << prenom << endl;

  3. #3
    Membre actif
    Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 107
    Points : 200
    Points
    200
    Par défaut
    Si tu souhaite rester en "C like"

    C'est parce que le prenom ne fais probablement pas 20 char de long, du coup tu affiche ce qui se trouve en memoire apres les X caracteres du prenom.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    char prenom[20]
    cout<<"Votre prenom:\t";
    memset(prenom, '\0', 20);
    cin>>prenom;
    int count = 0;
    while(prenom[count] != '\0')
    {
         cout<<prenom[count];
         ++count;
    }

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour les conseils
    Je pense cependant que je ne vais pas utiliser le string car je n'ai pas encore appris ça, et à la veille de mon examen, il est un peu tard.

    Merci beaucoup

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    On n'utilise JAMAIS l'opérateur d'extraction sur les flux (>>) vers un tableau/buffer de caractères.
    J-A-M-A-I-S!
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    En gros avec un tel buffer de char, il est trivial de faire planter ton prog dès qu'on saisit 21 char...
    Si tu veux pas utiliser les strings, et bien utilises des char .... en C (avec les fonctions C) et avec les précautions de rigueur.

Discussions similaires

  1. Affichage de tableau dans IE6 et FIREFOX
    Par olaxius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/12/2005, 11h49
  2. [MS-SQL]Affichage incorrect : System.Char[]
    Par the big ben 5 dans le forum Bases de données
    Réponses: 10
    Dernier message: 30/11/2005, 08h52
  3. Probleme affichage dans tableau selon requête
    Par moulette85 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 01/03/2005, 15h44
  4. [W3C] affichage de tableau
    Par Anonymous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/12/2004, 14h40
  5. affichage de tableau dynamique
    Par EJ dans le forum XMLRAD
    Réponses: 12
    Dernier message: 04/06/2004, 10h58

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