为什么这段代码不起作用?
int x;
cin >> x;
随着0x1a我的输入得到,x == 0而不是26.
为什么?
sea*_*ean 27
我相信为了使用hex你需要做这样的事情:
cin >> hex >> x;
cout << hex << x; 
你也可以用dec和oct等代替hex.
Kar*_*l D 17
实际上,您可以强制>>操作员获取并正确解释前缀0和0x.您所要做的就是删除默认设置std::cin:
std::cin.unsetf(std::ios::dec);
std::cin.unsetf(std::ios::hex);
std::cin.unsetf(std::ios::oct);
现在,当您输入0x1a时,您将收到26.