从txt文件读取双精度值并将其存储在动态分配的内存中

问题描述

我正在尝试从文本文件中读取double值,并将其存储在动态double数组中。 我的文件中有4个double值,每个值在换行符中。我正在使用while循环来遍历m_numbers的所有元素,并在其中存储一个double值。 while语句应该在第4次迭代后失败,但它正在进行5次迭代。这会导致函数的返回值错误。 似乎所有元素中都只存储了第一个值。

double * m_numbers = nullptr;

int m_numCount = 4;

这些变量已在头文件中初始化。

文件内容:

6
12.2
3
34.1

bool Numbers::load()
   {
       int i = 0;
       if (m_numCount > 0) {
           delete[] m_numbers;
           m_numbers = new double[m_numCount+1];
           ifstream fin(m_filename);
           while (!fin.fail()) {
               fin >> m_numbers[i];
               i++;
           }
       }
       return i == m_numCount;
   }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)