【发布时间】:2015-03-04 22:22:04
【问题描述】:
我正在读取一个文本文件并通过解析(逐行)提取它的信息片段。 以下是文本文件的示例:
0 1.1 9 -4
a #!b .c. f/
a4 5.2s sa4.4 -2lp
到目前为止,我可以使用空格 ' ' 作为分隔符来分割每一行。例如,我可以将"1.1" 的值保存到字符串变量中。
我想做的(这就是我卡住的地方)是确定我正在阅读的信息是否代表一个数字。使用前面的示例,这些字符串不代表数字:a #!b .c. f/ a4 5.2s sa4.4 -2lp
或者,这些字符串确实代表数字:0 1.1 9 -4
然后我想将代表数字的字符串存储到一个双精度类型变量中(我知道如何转换为双精度部分)。
那么,如何区分数字和其他符号呢?我正在使用 C++。
【问题讨论】:
-
用正则表达式怎么样?
-
上网查一下。
-
@kuisf-rund 您可以使用正则表达式来搜索文本中的模式。
-
您可以尝试将其转换为双精度,如果失败则将其保留为字符串
try { double x = mystring; } catch() { string x = mystring; }
标签: c++ string parsing double text-files