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

Langage C++ Discussion :

Fonction _itoa_s: erreur


Sujet :

Langage C++

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Fonction _itoa_s: erreur
    Bonjour
    Je suis en train de coder un jeu de dames en C++
    Le menu de base s'affiche, j'ai bien défini les zones cliquables (en tout cas, quand je teste avec un cout ça marche).
    Mais quand je clique par exemple sur Start, normalement je devrais avoir une nouvelle partie, et j'ai un message d'erreur du type:
    (je vous ai mis l'image en PJ)


    Pièce jointe 168791
    Voici la partie où j'utilise la fonction _itoa_s
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    void Game::DisplayInformation()
    {
           //
           // Scoring
           char buffer[250];
           char t1[10];
           char t2[10];
           char t3[10];
           _itoa_s (TotalWhite,t1,10); //the number given by TotalWhite into a chain of caracters
           _itoa_s (TotalBlack,t2,10);
     
           strcpy_s(buffer,"White : ");
           strcat_s(buffer,t1);
     
        Text(10, HEIGHT+10, screen, buffer);
     
           strcpy_s(buffer,"Black : ");
           strcat_s(buffer,t2);
     
        Text(10, HEIGHT+30, screen, buffer);
     
           //Round: white or black?
           strcpy_s(buffer,"Round : ");
           strcat_s(buffer,(round == White ? "White" : "Black"));
     
        Text(WIDTH-320, HEIGHT+30, screen, buffer);
     
           //Chronometer
           if(round != Empty)
           {
                 time (&end_t);
                 int dif = (int)difftime (end,start);
                 _itoa_s (dif,t3,10);
                 strcpy_s(buffer,"Time : ");
                 strcat_s(buffer,t3);
                 strcat_s(buffer," s");
           }
           else
           {
                 strcpy_s(buffer,"Time : ");
           }
     
        Text(WIDTH-160, HEIGHT+10, screen, buffer);
     
          //Display the type of the opponent
           bool vsCPU = getAgainstCPU();
           strcpy_s(buffer,"Opponent : ");
           strcat_s(buffer,(vsCPU == true ? "CPU" : "Player"));
        Text(WIDTH-160, HEIGHT+30, screen, buffer);
     
           //Winner?
           CheckEnd();
    }
    Est-ce que vous pouvez m'aider s'il vous plaît?
    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Si tu faisais vraiment du C++ tu n'aurais pas ce code.
    Tu as char t1[10]; et _itoa_s (TotalWhite,t1,11); déjà c'est un peu bizarre non ?
    Et il me semblait que _iota_s prenait 4 paramètres.
    Et on ne sait rien de TotalWhite ni de la valeur que tu espères.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Oui petit souci avec le 10, 11 j'ai corrigé cela merci
    TotalWhite est un entier qui compte le nombre de pions noirs pris par les Blancs
    Je souhaite afficher cet entier
    Ah oui je viens de regarder mon fichier xtoa il me manque un paramètre

  4. #4
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Bonjour,

    Ton code présente deux graves problèmes à mon sens :
    - le premier, déja signalé et que ce n'est pas du C++, mais du C.
    - le second est que les fonctions que tu utilises ne sont pas standard et ton programme n'est pas portable.
    L'excuse de MS pour conseiller l'usage de strcpy_s à la place de strcpy est bidon, puisque la fonction strncpy fait exactement la même chose, mais en étant portable.

    Mais en utilisant les fonctionnalités du C++ ce genre de problème ne se pose plus.

    Cordialement.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par fenkys Voir le message
    L'excuse de MS pour conseiller l'usage de strcpy_s à la place de strcpy est bidon, puisque la fonction strncpy fait exactement la même chose, mais en étant portable.
    C'est faux (strncpy n'insère pas de caractère nul si la chaîne est tronquée, pour des raisons historiques), mais ça reste une excuse bidon et inapproprié en C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [VB6] Fonction d'erreur
    Par Ribéry dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 16h49
  2. fonction checkTest : erreur de syntaxe
    Par MmoulinexX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/06/2006, 10h29
  3. submit form dans fonction JScript, Erreur :(
    Par mbk-w dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/05/2006, 12h23
  4. fonction récursive: erreur
    Par calla29 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/05/2006, 11h51
  5. [POO] Formulaire HTML + fonction JS = Erreur
    Par bdaboah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2004, 21h59

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