c++ - 如何使用ifstream检查文件中变量的类型?
问题描述
我在一个文件(由 s 打开ifstream
)中有一个流,其中有double
一些string
,但我不知道它们的位置。例如:
1 2 3 4 g 3 2 t 1 d
所以我必须像上面那样读取一个流,但是在读取之前我不知道如何区分变量的类型。
ifstream
在不了解变量顺序的情况下,我怎么能做到这一点?
解决方案
您可以peek()
流中的下一个字符,如果它是数字或符号,则将下一个值读取为 a double
,否则将其读取为 a string
。
否则,只需从流中读取所有内容作为 a string
,然后使用std::stod()
orstd::strtod()
尝试将每个转换string
为 a double
,并检查转换是否失败。
推荐阅读
- r - Problem with assign df$COLUMN[x] = df2$COLUMN[y] in R
- influxdb - 一个 influxdb,两个数据库在不同的目录
- ruby-on-rails - 如何使用 ruby 从 json 中删除多个属性
- ios - 如何使用 Swift 4 将字符串拆分为英语和非英语?
- c# - 从 C# 中的 DataGridView 更新 SQL 中的数据问题
- c# - 如何在使用@keyup 时从我的代码隐藏中的输入中获取值
- angular - Angular 6 弹出窗口
- parsing - Haskell Parsec:感人的运算符
- postgresql - JPA 错误 QuerySyntaxException:播放器未映射 [SELECT p FROM Player p]
- wordpress - Wordpress 缩放全尺寸图像而不是提供缩略图