正如标题所说,你如何使用fstream?读取十六进制值?
我有这个代码:(假设我们在文件中有"FF".)
fstream infile;
infile.open(filename, fstream::in|fstream::out|fstream::app);
int a;
infile >> std::hex;
infile >> a;
cout << hex << a;
Run Code Online (Sandbox Code Playgroud)
但这并没有给我任何输出而不是ff.我知道有一个,fscanf(fp, "%x", val)但我很好奇有没有办法使用流库来做到这一点.
更新:
我的代码一直都是正确的,事实证明我的错误是我无法阅读"FFF"并将其放在变量a,b,c中
while (infile >> hex >> a >> b >> c)
{
cout << hex << a << b << c << "\n";
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我这个吗?我是否必须将我想要阅读的每个HEX值与空格分开?因为infile >> hex >> setw(1)不起作用..
您必须std::hex在阅读时进行链接,就像将其链接以进行编写一样:
infile >> std::hex >> a;
Run Code Online (Sandbox Code Playgroud)
这有效:
int main()
{
const char *filename = "blah.txt";
ifstream infile(filename, fstream::in);
unsigned int a;
infile >> hex >> a;
cout << hex << a;
}
Run Code Online (Sandbox Code Playgroud)