如何从C ++文件中读取双精度?
对于int我知道你可以使用getline()然后使用atoi,但我找不到一个双重函数的数组。什么可用于读取双打,或将char数组转换为double?
答案 0 :(得分:3)
您可以使用流提取:
std::ifstream ifs(...);
double d;
ifs >> d;
这项工作提供了除了空白之外的其他数据,流中的下一个数据应该是文本表示的两倍。
提取后,您可以检查流的状态以查看是否存在错误:
ifs >> d;
if (!ifs)
{
// the double extraction failed
}
答案 1 :(得分:3)
答案 2 :(得分:2)
我想知道,是否需要注意区域设置(例如,区域设置可以使用逗号而不是点来分隔小数部分)或者字符串流是否始终默认为某些标准的“C语言环境”表示法?
答案 3 :(得分:0)
您可以使用istringstream例如,这里是toDouble和toInt:
double toDouble(string s) {
double r = 0;
istringstream ss(s);
ss >> r;
return r;
}
int toInt(string s) {
int r=0;
istringstream ss(s);
ss >> r;
return r;
}