如何解决通过从文件中读取其值来初始化 const 变量C++
我正在编写一个代码,其中两个变量是常量,但它们需要从 .txt 文件中读取。
我已经写好了函数
void ReadValues(const char filename[],double& sig,double& tau)
{
std::ifstream infile;
infile.open(filename);
if(!infile.is_open())
{
std::cout << "File is not open. Exiting." << std::endl;
exit(EXIT_FAILURE);
}
while(!infile.eof())
infile >> sig >> tau;
infile.close();
}
显然我不能在原型中添加 const 说明符。我做的是以下内容:
double s,t;
ReadValues("myfile.txt",s,t);
const double S = s;
const double T = t;
有更好的方法吗?
解决方法
您可以稍微修改 ReadValues
以将 2 个 double
作为 pair
返回。
auto ReadValues(const char filename[]) -> std::pair<double,double>
{
double sig,tau; // local variable instead of reference parameters
// read from file into sig and tau
return {sig,tau};
}
现在您可以像这样设置变量 const
。
auto const [S,T] = ReadValues("myfile.txt");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。