J'ai besoin d'une fonction qui retourne la valeur ASCII d'un caractère, y compris les espaces, les tabulations, les nouvelles lignes, etc.
Sur une note similaire, quelle est la fonction qui convertit entre les nombres hexadécimaux, décimaux et binaires?
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
Un caractère est un entier, pas besoin de fonctions de conversion.
Peut-être recherchez-vous des fonctions affichant des nombres entiers sous forme de chaîne - utilisant des représentations hexadécimales, binaires ou décimales?
Vous n'avez pas besoin d'une fonction pour obtenir la valeur ASCII - convertissez-la simplement en un entier par une conversion (implicite):
int x = 'A'; // x = 65
int y = '\t'; // x = 9
Pour convertir un nombre en hexadécimal ou en décimal, vous pouvez utiliser l’un des membres de la famille printf
:
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
Il n'y a pas de fonction intégrée à convertir en binaire; vous devrez rouler le vôtre.
Si vous voulez obtenir la valeur ASCII d'un caractère dans votre code, mettez simplement le caractère entre guillemets
char c = 'a';
Vous pouvez confondre représentation interne et sortie. Pour voir quelle valeur a un personnage:
char c = 'A';
cout << c << " has code " << int(c) << endl;
De même pour les valeurs hexadécimales - tous les nombres sont des nombres hexadécimaux, il s’agit donc simplement d’une sortie:
int n = 42;
cout << n << " in hex is " << hex << n << endl;
Le "hex" dans l'instruction de sortie est un manipulateur C++. Il existe des manipulateurs pour hex et decimal (déc), mais malheureusement pas pour binaire.
En ce qui concerne hex & binary - ce ne sont que des représentations d'entiers. Ce que vous voulez probablement est quelque chose comme printf ("% d", n) et printf ("% x", n) - le premier affiche la décimale, le second la version hexadécimale du même nombre. Clarifiez ce que vous essayez de faire -