transformer des entiers à 1 chiffre (1,2,3...) en 2 chiffres (01,02..) - C++ - Programmation
Marsh Posté le 23-02-2003 à 17:00:20
Salut,
en C standard (ou posix au pire), i vaudra toujours 1 et pas 01, vu que c'est un int.
Si tu veux "01", il faut le transformer en char*
Marsh Posté le 23-02-2003 à 17:04:04
c'est juste un probleme d'affichage que t'as.
si t'es en C++, tu peux faire un truc comme ca:
Code :
|
et tu récuperes une string par stream.str () pour l'afficher
Marsh Posté le 23-02-2003 à 17:34:18
Ouais enfin là il utilise apparemment C++Builder et les AnsiString (enfin je suppose) donc autant continuer avec les AnsiString
NumeroJoueur->AddItem(i < 10 ? "0" + AnsiString(i) : i, this);
(oui je sais c'est pas très beau mais bon...)
Marsh Posté le 24-02-2003 à 01:21:47
antp a écrit : Ouais enfin là il utilise apparemment C++Builder et les AnsiString (enfin je suppose) donc autant continuer avec les AnsiString |
Décidement j'en apprends tous les jours sur ce forum...
cette ligne, elle s'explique comment?
Code :
|
Si i<10
Alors (?) "0" + AnsiString(i)
Sinon ( i
C'est ça?
Ce type de structure, on peut mettre ça où on veut, ou bien seulement dans les structures de type Objet->Action(...)?
Et pourquoi c'est pas très beau?
Marsh Posté le 24-02-2003 à 09:20:33
oui, c'est ça
L'opérateur ternaire (trois opérandes) "?" c'est un si...alors...sinon, c'est un truc classique du C, tu le mets où tu veux.
Ça a parfois tendance à rendre le code un peu illisible, donc faut faire gaffe, j'emploie ça très rarement.
condition ? si vrai : si faux
Marsh Posté le 24-02-2003 à 09:33:07
antp a écrit : Ouais enfin là il utilise apparemment C++Builder et les AnsiString (enfin je suppose) donc autant continuer avec les AnsiString |
Marsh Posté le 24-02-2003 à 09:38:47
plus propre :
Code :
|
Marsh Posté le 24-02-2003 à 09:43:27
ReplyMarsh Posté le 24-02-2003 à 09:43:54
je trouve ça moche de foutre les accolades sur la même ligne qu'autre chose
(je fous les accolades seules sur une ligne, comme les begin/end du Pascal )
Marsh Posté le 24-02-2003 à 09:49:00
lorill a écrit : |
de la part d'un amateur d'un langage ou les classes & fonctions sont délimitées par des tabulations, ça ne m'étonne pas !
Marsh Posté le 24-02-2003 à 09:50:45
Harkonnen a écrit : |
LES BLOCS BORDEL !
ca se moque et ca ne sait pas
Marsh Posté le 24-02-2003 à 09:59:21
antp a écrit : je trouve ça moche de foutre les accolades sur la même ligne qu'autre chose |
au début je faisais comme toi, mais finalement je me suis rendu compte que je trouvais ça plus lisible : le corps de la fonction ou du test semble mieux intégré à la condition ou déclaration de fonction.
de toute façon, c'est purement subjectif
Marsh Posté le 24-02-2003 à 10:00:39
lorill a écrit : |
je savais bien qu'il existait un mot pour ça
Marsh Posté le 24-02-2003 à 10:57:42
Harkonnen a écrit : |
et c'est koi comme langage??
Marsh Posté le 24-02-2003 à 11:18:49
haazheel a écrit : |
tu cliques sur chaque sous-cat en haut du forum, et le langage en question est celui dont les topics tiennent sur une demi-page
Marsh Posté le 24-02-2003 à 11:20:31
Harkonnen a *crit : |
ADA ? Cobol ?
Non, c'est du Python, dont on parle.
Marsh Posté le 24-02-2003 à 12:25:46
lorill a écrit : |
Sauf qu'en l'occurrence, il me semble qu'elle est fausse. Les 2 valeurs de chaque côté du deux-points doivent avoir le même type (ou au moins des types compatibles). Et là, int d'un côté et AnsiString de l'autre, le compilateur risque de ne pas trop apprécier...
Du coup, il faut sans doute mieux écrire :
Code :
|
Et petit rappel : l'indentation joue un très grand rôle dans la lisibilité de l'opérateur ternaire...
Marsh Posté le 24-02-2003 à 12:28:19
ha ouais en effet j'ai oublié l'AnsiString autour du i pour le second
Marsh Posté le 25-02-2003 à 01:00:45
antp a écrit : ha ouais en effet j'ai oublié l'AnsiString autour du i pour le second |
ce qui explique pourquoi ça marchait pas...
j'ai corrigé, ça fonctionne maintenant
Merci!!
Marsh Posté le 23-02-2003 à 16:26:01
Salut,
tout est dans le sujet, je fais ça comment?
Voici mon code:
J'ai essayé quelques trucs:
et d'autres choses dans le même style (genre en passant par une autre variable j) mais ça s'affiche pas bien dans le ComboBox...
Tout ce qui est en dessous de 10 ça merde, mais au dessus ça fonctionne bien...
Merci