ble*_*eda 6 string floating-point ocaml
我正试图从字符串中获取浮点数.我的意思是从文本文件中逐行读取并从一行中获取浮点数.我找到了如何逐行阅读,但我无法将字符串拆分为浮点数.这是一个示例输入文件:
10,10,18,18.1
7,3,10,14.2
3,3,5.3,5
我看过sscanf,但我不能这样做.任何的想法?
根据多年的经验,我发现scanf不太可能完全符合您的要求.快速测试程序是可以的.
一种可能性是使用Str.split:
let floats_of_string s =
List.map float_of_string (Str.split (Str.regexp "[, \t]+") s)
Run Code Online (Sandbox Code Playgroud)
如果要检测无效输入,可能需要使正则表达式更紧密.
仔细阅读手册以了解scanf格式的工作原理 - 它有一些怪癖,但背后有一个原因.
"%f , %f , %f , %f %!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |