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
 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  | 
  
 
 ![[:tapai] [:tapai]](https://forum-images.hardware.fr/images/perso/tapai.gif)
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 ! 
 ![[:dehors] [:dehors]](https://forum-images.hardware.fr/images/perso/dehors.gif)
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 ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
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 ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
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