у меня есть простой вопрос, который меня смущает.
Цель : я хочу прочитать заданный байт из файла (скажем, первый байт) и создать int x со значением ASCII этого байта. Так, например, если байт / символ - 'a', я хочу, чтобы x было 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)