如何以快速安全的方式将十六进制字符串转换为无符号64位(uint64_t)整数?
我试过了
sscanf(str, "%016llX", &int64 );
但似乎不安全。是否有快速安全的方式进行型式铸造?
谢谢〜
没有找到相关结果
已邀请:
3 个回复
渴翅吮斡撤
系列中的功能。它们几乎不可能强有力地使用。以下是
的一般安全用法:
请注意,
在字符串上接受可选的
前缀,以及可选的初始空格和符号字符(
或
)。如果你想拒绝这些,你应该在调用
之前进行测试,例如:
如果您还希望禁止过长的数字表示(前导零),您可以在调用
之前检查以下条件:
还要记住的另一件事是“负数”不被视为超出转换范围;相反,
的前缀与C中应用于无符号值的一元否定算子相同,因此例如
将返回
(不设置
)。
车料
函数,它不像
是一个专门用于阅读数字文本表示的函数。
撵穆
标题有转换宏来安全处理
类型:
或者(如果这确实是你想要做的事情),反过来说:
请注意,使用
功能系列不能强制执行宽度等。它解析它得到的东西,当输入不符合预期的格式时,会产生不希望的结果。哦,
函数族只知道(小写)“x”,而不是(大写)“X”。