请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 工具/软件:TI C/C++编译器
根据 C++规范、sscanf 返回的值应与成功填充的项目数匹配。 (链接)
我尝试了以下操作(编译器 TI v5.2.5):
bool ToFloat (char* string、float* data) { int temp = sscanf (string、"%f"、data); 返回(1 == temp); } int main (void) { char testdata[]="EPRP"; 解析浮点; bool res = ToFloat (&testdata[0],已解析); ...
在这种情况下、sscanf 返回1、数据为0.0。 我尝试了其他字符串、如"XXXX"或"PERP"、这些字符串会按预期返回0。
我使用不同的编译器对其进行了测试:
所有这些函数都按预期返回0、因此我猜 TI v5.2.5编译器(也是 TI v18.1.LTS)在以"E"开头的字符串中存在问题(可能是由于工程符号?)。
是否有解决此问题的方法,或者是否有可正常工作的 stdio 库版本?
谢谢你