Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Convertir : (char *) -> (int *) [C ANSI]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir : (char *) -> (int *) [C ANSI]

n°853216
Apprenti P​ingouin
Posté le 18-09-2004 à 16:16:43  profilanswer
 

Je dois faire un programme où l'utilisateur doit rentrer des octets en hexadécimal en paramètre dans le main (**argc).
 
Donc ce qui se trouve dans argc, c'est des caractères que je dois faire rentrer dans un tableau de int, le problème c'est que je dois non seulement convertir les char en int, mais en plus il faut faire la conversion en hexadécimal.
 
Par exemple si l'utilisateur rentre : FF 01, je dois retrouver 255 dans la première case du tableau int et 1 dans la deuxième case.
 
Es que quelqu'un à une idée ?
 
PS : En utilisant que du C.

mood
Publicité
Posté le 18-09-2004 à 16:16:43  profilanswer
 

n°853217
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:17:34  profilanswer
 

strtol / stroul

n°853220
Apprenti P​ingouin
Posté le 18-09-2004 à 16:21:53  profilanswer
 

Taz ->
 
Ok, merci beaucoup, mais le problème qui se pose, c'est que sa va convertir l'hexa en décimal.
 
Il existe pas une fonction qui fait sa ?
 
Parce que si je rentre FF il va mettre quoi comme valeur dans le première case ?

n°853221
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:23:37  profilanswer
 

t'as regardé ce que ça fait strtol ?
 
ou alors faut le dire tout de suite si t'es le genre de débutant qui crois que 0xA n'est la égal à 10 décimal ?

n°853222
Apprenti P​ingouin
Posté le 18-09-2004 à 16:26:35  profilanswer
 

Taz ->
 
Ouai sa ok mais si je met 55, il va me mettre 55 dans la première case et non pas 170.

n°853225
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:28:46  profilanswer
 

c'est quoi une case ?

n°853227
Apprenti P​ingouin
Posté le 18-09-2004 à 16:31:40  profilanswer
 

Taz ->
 
Je dis une case en supposant que tu converti dans un tableau de int.
 
Et donc si tu as une chaine qui est "55",
sa va te donner 55 une fois converti en int.
 
Sauf que moi je veux qu'il y ai 170 puisque "55" c'est de l'hexa.

n°853229
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:33:25  profilanswer
 

0x55 ça fait pas 170 en base 10 ...
 
donc confirmation : t'es bien le deuxième type que j'ai décrit
 
 
--
 
pâture ...
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char* argv[])
  4. {
  5.   while(*++argv)
  6.     {
  7.       printf("%d\n", (int)strtoul(*argv, NULL, 16));
  8.     }
  9.   return 0;
  10. }


 

n°853230
Apprenti P​ingouin
Posté le 18-09-2004 à 16:36:12  profilanswer
 

Taz ->
 
Autant pour moi c'est par là j'était sur 0xAA = 170
 mais 0x55 sa fait 85 et dans ton int * tu va récupérer quoi ?
 
(55 ou 85 ?)

n°853231
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:37:04  profilanswer
 

comme je t'ai déjà dit 0x55 est 85

mood
Publicité
Posté le 18-09-2004 à 16:37:04  profilanswer
 

n°853232
Apprenti P​ingouin
Posté le 18-09-2004 à 16:39:22  profilanswer
 

Taz ->
 
Sa je sais, mais donc sa veut dire que l'utilisateur doit rentrer "0x55" et non "55" ?
 
Ma question en faite c'est es que si rentre "0x55", sa fait bien la conversion en hexa ?

n°853233
Apprenti P​ingouin
Posté le 18-09-2004 à 16:46:26  profilanswer
 

Taz ->
 
Merci beaucoup sa marche niquel (désolé j'avais pas vu le radix permettant de changer la base).
 
1000 merci.

n°853234
Taz
bisounours-codeur
Posté le 18-09-2004 à 16:46:27  profilanswer
 

c'est quand tu veux pour te mettre au boulot
 
tu lis le 'man strtol' tu testes le programmes que je t'ai donné et tu reviens pas avant d'avoir fait ça

n°853236
Apprenti P​ingouin
Posté le 18-09-2004 à 16:47:23  profilanswer
 

Taz ->
 
C'est bon merci sa fonction, désolé pour le radix.
 
Encore merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Convertir : (char *) -> (int *) [C ANSI]

 

Sujets relatifs
bios.h et dos.h [C ANSI]convertir des macro en exe ?
Convertir un String en TDateTimeComment convertir espaces et accents des URL en %xx ?
[win]convertir une chaine en entier ?convertir string en File
Date stockée au format strtotime, comment convertir ?convertir une std::string en type de base (int, float, etc)
Convertir les formules Excel en VBAConvertir un Char* en WCHAR* ? [résolu]
Plus de sujets relatifs à : Convertir : (char *) -> (int *) [C ANSI]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR