func isNumber(text:String)->Bool
{
if let intVal = text.toInt()
{return true}
else
{return false}
}
出于某种原因,这会打印出var str:String="11.5"
if(isNumber(str))
{println("yes")}
else
{println("no")}
//prints "no"
的字符形式,而不是int main () {
char k = 0xd8;
cout << hex << k << endl;
}
的十六进制形式。执行k
会给我d8
这不是我想要的那个。
答案 0 :(得分:3)
这只是C++
中的众多缺陷之一,也是我坚持C
的另一个原因。您可以在下面提供的参考资料中阅读有关该主题的更多信息。为了省去一些麻烦,请考虑使用生产代码中的printf()
系列函数,因为修复程序不能保证符合标准。
代码清单
#include <iostream>
using namespace std;
int main(void)
{
unsigned char k = 0xd8;
cout << "k = 0x" << hex << +k << endl;
}
示例输出
k = 0xd8
<强>参考强>
http://cpp.indi.frih.net/blog/2014/08/code-critique-stack-overflow-posters-cant-print-the-numeric-value-of-a-char/
,显式C ++ ,访问次数2015-09-27 http://cpp.indi.frih.net/blog/2014/09/tippet-printing-numeric-values-for-chars-and-uint8_t/
,显式C ++ ,已访问2015-09-27