如何从 C++ 文件中读取双精度?
对于整数,我知道你可以使用 getline() 然后使用 atoi,但我没有找到一个数组来加倍函数。什么可用于读取双精度数或将 char 数组转换为双精度数?
如何从 C++ 文件中读取双精度?
对于整数,我知道你可以使用 getline() 然后使用 atoi,但我没有找到一个数组来加倍函数。什么可用于读取双精度数或将 char 数组转换为双精度数?
您可以使用流提取:
std::ifstream ifs(...);
double d;
ifs >> d;
这项工作提供了除了空格之外,流中的下一个数据应该是文本表示形式的双精度。
提取后,可以查看流的状态,看看是否有错误:
ifs >> d;
if (!ifs)
{
// the double extraction failed
}
我想知道,是否需要注意语言环境设置(例如,语言环境可以使用逗号而不是点来分隔小数部分)还是字符串流总是默认为某些标准的“C 语言环境”表示法?
您可以利用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;
}