繁体   English   中英

在C中运行时解析浮点数的标准方法是什么?

[英]What is the standard way to parse floats at runtime in C?

我有一个科学的应用程序,我想在运行时输入初始值。 我可以选择从命令行获取它们,或者从输入文件中获取它们。 这些选项中的任何一个都输入到通用解析器,该解析器使用strtod返回每个模拟运行的初始值的链接列表。 我要么使用命令行参数,要么使用getline()来读取值。

问题是,我应该滚动自己的解析器,还是应该使用解析器生成器或某个库? 什么是标准方法? 这是我将在运行时读取的唯一数据,其他所有数据都在编译时设置(输出文件和其他一些非常简单的东西除外)。

谢谢,

乔尔

还可以查看strtof()表示浮点数,strtod()表示双打。

sscanf

可能是解析它们的标准方法。

但是,sscanf存在一些问题,尤其是在解析用户输入时。

而且当然,

atof

一般来说,我更喜欢数据输入来自文件(例如运行的初始条件,时间步长总数等),标志输入来自命令行(例如输入文件名,输出文件名)等)。 这允许文件被存档并再次使用,并允许将注释嵌入文件中以帮助解释输入。

如果输入文件具有常规格式:
对于解析,从文件中读取一整行,并使用sscanf将该行“解析”为变量。

如果输入文件具有不规则格式:修复文件格式以使其成为常规格式(如果这是一个选项)。 如果没有,那么strtof和strtod是最好的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM