首页 > 解决方案 > 如何使用ifstream检查文件中变量的类型?

问题描述

我在一个文件(由 s 打开ifstream)中有一个流,其中有double一些string,但我不知道它们的位置。例如:

1 2 3 4 g 3 2 t 1 d

所以我必须像上面那样读取一个流,但是在读取之前我不知道如何区分变量的类型。

ifstream在不了解变量顺序的情况下,我怎么能做到这一点?

标签: c++ifstream

解决方案


您可以peek()流中的下一个字符,如果它是数字或符号,则将下一个值读取为 a double,否则将其读取为 a string

否则,只需从流中读取所有内容作为 a string,然后使用std::stod()orstd::strtod()尝试将每个转换string为 a double,并检查转换是否失败。


推荐阅读