我有一个简单的问题让我困惑。
Goal:我想从文件中读取给定的字节(比如第一个字节)并用该字节的 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;
}
Problem:如果第一个字节由 08 表示,那么我确实得到 8 的输出。但是如果该字节由 09 表示,那么我得到 0。我注意到我似乎得到了以下字节,除非该字节也是 09 .我不知道我的问题是否仅当该字节以 ASCII 表示为 09 时。
Question:那么我如何读取文件中的第一个(或第三个或其他)字节并用该字节的 ASCII 值创建一个 int ?
(我的系统是Windows XP)
这应该可以解决它。
myFile >> noskipws >> b;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)