首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LynxOS strtod与Linux不同

LynxOS strtod与Linux不同
EN

Stack Overflow用户
提问于 2010-12-12 05:21:55
回答 1查看 306关注 0票数 2

看起来LynxOS的strtod实现并不能处理所有与Linux或Solaris相同的情况。我遇到的问题是,我正在尝试解析一些可能包含十进制或十六进制数字的文本。

在Linux上,我调用

代码语言:javascript
复制
a = strtod(pStr, (char **)NULL);

我还得到了1.2345670x40等输入字符串在a中的期望值。

在LynxOS上,十进制数可以正确解析,但十六进制会简单地解析为0,因为它在命中'x‘时会停止。查看手册页,LynxOS的strtod似乎只支持输入中的十进制字符串。

在座的各位有没有人知道可以同时在Lynx和Linux上工作的替代方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-12 06:12:39

引述自标准(7.20.1.3) ( http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf )

主题序列的预期形式是一个可选的加号或减号,然后是下列值之一:

-一个非空的十进制数字序列,可选地包含一个小数点字符,然后是一个可选的指数部分,如6.4.4.2中的defined;

- 0x或0X,然后是可选的包含小数点字符的非空的十六进制数字序列,然后是可选的二进制指数部分,如6.4.4.2中的defined;

- ...

因此,您在LynxOS上使用的编译器不是C99编译器。

我的C89标准副本没有引用0x前缀:

4.10.1.4 strtod函数

..。

主题序列的预期形式是一个可选的加号或减号,然后是一个可选的包含小数点字符的非空数字序列,然后是一个可选的指数部分...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4419016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档