Tho*_*mas 5 c++ int ascii char
我有一个令我困惑的简单问题.
目标:我想从文件中读取一个给定的字节(比如第一个字节),并使用该字节的ASCII值生成int x.因此,例如,如果字节/字符是'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;
}
Run Code Online (Sandbox Code Playgroud)
问题:如果第一个字节用08表示,那么我确实得到了8的输出.但如果字节用09表示,那么我得到0.我注意到我似乎得到了下面的字节,除非那个字节也是09.我不知道我的问题是否仅在字节用ASCII表示为09时.
问题:那么如何读取文件中的第一个(或第三个或其他)字节,并使用该字节的ASCII值生成一个int?
(我在Windows XP上)