У меня простой вопрос, который меня смущает.
Цель : я хочу прочитать данный байт из файла (скажем, первый байт) и сделать int x со значением ASCII этого байта. Так, например, если байт / символ «а», я хочу, чтобы х было 97 (= 61 в шестнадцатеричном формате). У меня есть следующее чтение первого байта файла 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;
}
Проблема : Если первый байт представлен 08, то действительно я получаю вывод 8. Но если байт представлен 09, то я получаю 0. Я заметил, что мне кажется, получите следующий байт, если этот байт также не равен 09. Я не знаю, заключается ли моя проблема только в том, что байт представлен в ASCII как 09.
Вопрос : Итак, как мне прочитать, скажем, первый (или третий или любой другой) байт из файла и сделать int со значением ASCII этого байта?
(Я на Windows XP)