Tengo una pregunta simple que me confunde.Cómo leer un byte y guardar el valor ASCII de byte en entero en C++
Objetivo: Quiero leer un byte dado de un archivo (digamos el primer byte) y hacer int x con el valor ASCII de ese byte. Entonces, por ejemplo, si el byte/carácter es 'a', quiero que x sea 97 (= 61 en hexadecimal). Tengo el siguiente de leer el primer byte del archivo example.txt:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
unsigned int x;
unsigned char b;
ifstream myFile ("example.txt", ios::out | ios::binary);
myFile.seekg (0, ios::beg);
myFile >> b;
x = (unsigned int)b;
cout << hex << x;
return b;
}
Problema: Si el primer byte está representado por 08, entonces sí me da una potencia de 8. Pero si se representa el byte para el 09, luego obtengo 0. He notado que parece obtener el siguiente byte a menos que ese byte también sea 09. No sé si mi problema es solo cuando el byte está representado en ASCII por 09.
Pregunta: Entonces, ¿cómo leo para decir el primer (o tercero o lo que sea) byte de un archivo y hacer un int con el valor ASCII de ese byte?
(Estoy en Windows XP)
¿Por qué no acaba de leer en un 'char'? –
@ Lightness Races in Orbit: Gracias por el comentario. Estaba tratando de leer en un char, pero quiero obtener el valor ascii de cada personaje y cuando el valor era 09, estaba obteniendo el valor 0. (si tiene sentido?) – Thomas