forcer l'affichage sur plusieurs digits

forcer l'affichage sur plusieurs digits - C++ - Programmation

Marsh Posté le 17-03-2006 à 16:00:03    

:hello:
 
tout est dans la question :D
 
j'ai besoin en fait d'afficher une valeur en secondes et millisecondes, et dans le cas normal il va m'afficher 9 au lieu de 009 (pour les millemes ...) merci bien (question de noob je sais)

Reply

Marsh Posté le 17-03-2006 à 16:00:03   

Reply

Marsh Posté le 17-03-2006 à 16:04:46    

que veux-tu faire exactement ?
 
je suppose que c'est de printf( "%03d", i) que tu as besoin. tu trouveras plus de détails dans la page de man.
 
[EDIT] oops, j'avais oublié qu'on était dans la cat C++ (vendredi soir, fatigué, toussa ...)

Code :
  1. #include <iostream>
  2. #include <iomanip>
  3. std::cout << std::setfill('0') << std::setw(3);
  4. std::cout << i;


Message édité par franceso le 17-03-2006 à 16:12:20
Reply

Marsh Posté le 17-03-2006 à 16:11:47    

ok je vais voir ca, mais printf ne serait pas a proscrire en C++ ?
 
je montre un exemple simple
 
j'ai réalisé une fonction qui calcule, depuis une valeure entiere, une valeur en secondes, ainsi qu'une valeur en millièmes de secondes, de la maniere suivante :
 

Code :
  1. std::vector<int> secmill(int valoctet)
  2. {      std::vector<int> resultat;         
  3.        int secondes,milliemes=0;
  4.        secondes = valoctet/8000;
  5.        milliemes = (valoctet%8000)/8;
  6.        temp.push_back(secondes);
  7.        temp.push_back(milliemes);
  8.        return(resultat);}


 
seulement, le résultat en millième, du fait de la fonction (et c'est tout à fait logique) renvoyé est de 3 si la valeur est 3, et non 003
 
alors bon apres on peut faire une fonction du style :
 
if(valeur < 100) on rajoute un zéro devant
else if (valeur < 10) on rajoute deux zéros devant
else on laisse tel quel
 
mais c'est un peu rébarbatif ...


Message édité par Thordax le 17-03-2006 à 16:15:09
Reply

Marsh Posté le 17-03-2006 à 16:14:55    

cf. edit post précédent
 
faut que je dorme, moi...

Reply

Marsh Posté le 17-03-2006 à 16:15:36    

merci tout plein :d

Reply

Marsh Posté le 17-03-2006 à 16:17:28    

c'est du C, donc HS.
 
  cout << 3 << '.';
  cout.width(3);
  cout.fill('0');
  cout << 4 << '.' << 1 << '\n';

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed