c++ - sirve - Tipo de datos enteros de 1 byte
unsigned char c (2)
Me temo que tampoco sé de ninguna manera, pero leer un número hexadecimal en un tipo entero puede lograrse de la siguiente manera:
#include <iostream>
using namespace std;
int main () {
short c;
cin >> std::hex >> c;
cout << c << endl;
return 0;
}
Escribí el siguiente código:
#include <iostream>
#include <iomanip>
#include <stdint.h>
using namespace std;
int main()
{
uint8_t c;
cin >> hex >> c;
cout << dec << c;
return 0;
}
Pero cuando ingreso c
-hex por 12, la salida también es c
. Esperaba 12. Más tarde supe que:
uint8_t
suele ser un typedef paraunsigned char
. Entonces, en realidad está leyendoc
como ASCII 0x63.
¿Hay un entero de 1 byte que se comporte como un número entero mientras se hace I / O y no como char?
No que yo sepa.
Podrías hacer las E / S usando un tipo de entero más ancho, y usar la verificación de rango y el lanzamiento, según corresponda.