我想读取文本文件中的所有内容(但文本文件中只有一个双精度值),转换为双精度值并返回值

I would like to read in all content in a text file (but there is only one double value in textfile), convert to double and return value

本文关键字:文件 双精度 有一个 转换 返回值 文本 取文本 读取      更新时间:2023-10-16

我是 c++ 的初学者。我有一个值为:3.0 的文本文件(它发生了变化 对于我的程序的每次运行(。我想创建一个 c++ 函数 在某个文件夹中打开文本文件,并读取此值,转换为 双精度变量并返回此值,然后关闭文本文件。

//read value, convert and return
double getDoubleValueFromFile(string filename, string path) {
string stringValue;
double doubleValue; 
string line;
string concat = path + filename;
using namespace std;
ifstream myfile(concat);
if (myfile.is_open())
{
while (getline(myfile, line))
{   
//read value into stringValue
}
myfile.close();
}
else cout << "Unable to open file";
//convert stringValue to doubleValue
return doubleValue;
}

如果您只对文件开头的单个值感兴趣,则无需在循环中读取行。只需使用operator>>直接读取该值即可:

double getDoubleValueFromFile(string filename, string path)
{
double doubleValue = 0.0;
std::ifstream myfile(path + filename);
if (myfile.is_open())
myfile >> doubleValue;
else
std::cout << "Unable to open file";
return doubleValue;
}