[C] transformer un int en char

transformer un int en char [C] - C - Programmation

Marsh Posté le 02-09-2003 à 17:54:57    

bonjour à tous
alors voila mon probleme est le suivant, je dosi lancer une commande "system()" vers un programme, mais avec un paramatre qui est un entier.
comme dans la fonction system on ne peut pas lui passer de variable en argument, j'ai trouvé la solution de concatener 2 char, un avec la commande et l'autre avec l'argument.
mais je ne sais pas commetn convertir mon int en char pour le concatener.
merci de votre aide

Reply

Marsh Posté le 02-09-2003 à 17:54:57   

Reply

Marsh Posté le 02-09-2003 à 17:56:27    

man itoa()
 
edit: Taz, pas taper [:ddr555]


Message édité par Harkonnen le 02-09-2003 à 17:57:00

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 02-09-2003 à 18:01:11    

Recherche y a plein de post en parlant
 
Puis autre version que itoa (avec un desoel Taz si c pas le meilleur)

template <class T>
std::string xToString(const T& t) {
 try {
  std::basic_ostringstream<char> o;
  o << t;
  return o.str();
 }
 catch(...) {
  return std::string(" - Erreur xToString - " );
 }
}

 
Erf merde cat C et pas C++, desole :(


Message édité par VisualC++ le 02-09-2003 à 18:05:32
Reply

Marsh Posté le 02-09-2003 à 18:07:32    

Code :
  1. char commande[une_taille_qui_te_va]; // ou malloc
  2. sprintf(commande, "%s %d", "cmd", 42);
  3. sprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42); /* version qui évite l'overflow */
  4. system(commande);

Reply

Marsh Posté le 02-09-2003 à 18:09:54    

Harkonnen a écrit :

man itoa()
 
edit: Taz, pas taper [:ddr555]

qui n'est pas standard comme chacun sait, donc pas disponible partout (moi je l'ai pas)
 
solution générique, passe partout, sure -> s(n)printf

Reply

Marsh Posté le 02-09-2003 à 18:31:17    

Taz a écrit :

Code :
  1. char commande[une_taille_qui_te_va]; // ou malloc
  2. sprintf(commande, "%s %d", "cmd", 42);
  3. sprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42); /* version qui évite l'overflow */
  4. system(commande);




je ne comprends pas bien ton systeme
que fait la fct sprintf?

Reply

Marsh Posté le 02-09-2003 à 18:34:01    

elle imprine comme printf, sauf que là, elle le fait dans une chain e et pas dans un flux

Reply

Marsh Posté le 02-09-2003 à 18:42:34    

voila je viens de tester et celà fonctionne bien avec cette ligne:
sprintf(commande, "%s %d", "cmd", 42);
 
mais celle çi ne va pas, il y a trop d'argument selon le compilateur:
snprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42);


Message édité par beef02 le 04-09-2003 à 10:30:39
Reply

Marsh Posté le 02-09-2003 à 18:43:34    

beef02 a écrit :


mais celle çi ne va pas, il y a trop d'argument selon le compilateur:
sprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42);  

bah t'as un compilateur complètement obsolète et c'est tout

Reply

Marsh Posté le 02-09-2003 à 18:52:06    

ben non je ne pense pas  
g visual c++ 6

Reply

Marsh Posté le 02-09-2003 à 18:52:06   

Reply

Marsh Posté le 02-09-2003 à 19:01:30    

beef02 a écrit :

ben non je ne pense pas  
g visual c++ 6

tu penses très très mal alors

Reply

Marsh Posté le 02-09-2003 à 19:06:16    

beef02 a écrit :

ben non je ne pense pas  
g visual c++ 6


 
Cherche 2 sec dans la doc et tu trouveras la version de VC++

Reply

Marsh Posté le 04-09-2003 à 10:29:03    

Code :
  1. sprintf(commande, "%s %d", "cmd", 42);
  2. snprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42);


Message édité par leneuf22 le 04-09-2003 à 10:30:14
Reply

Marsh Posté le 04-09-2003 à 10:30:49    

leneuf22 a écrit :

Code :
  1. sprintf(commande, "%s %d", "cmd", 42);
  2. snprintf(commande, une_taille_qui_te_va, "%s %d", "cmd", 42);



oooooooooooops

Reply

Sujets relatifs:

Leave a Replay

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