微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过从文件中读取其值来初始化 const 变量C++

如何解决通过从文件中读取其值来初始化 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 举报,一经查实,本站将立刻删除。