【问题标题】:Read double numbers from a text file从文本文件中读取双数
【发布时间】:2012-10-20 05:46:31
【问题描述】:

我有一个文本文件,这个文件我有这样的东西:

0.003 0.4 6
0.004 0.002 54
0.007 0.001 6

我需要从文本文件中读取这些数字并将它们保存在数组或列表中,如下所示:

0.003 0.4 6
0.004 0.002 54
0.007 0.001 6

例如,如果数组名称是 myArray,我需要这样的东西

myArray[0,0,0]=0.003

我发现了一些可以从文本文件中读取双精度的方法,但在所有这些方法中,数组都是这样的

myArray=[0.003;0.4;6;0.004,0.002;54;....]

我该怎么办?请帮助我,我是编程初学者。

【问题讨论】:

  • 那么您需要 1、2 或 3 维数组吗?当您说您需要调用像 'myArray[0,0,0]' 这样的 3 维数组时。看起来您发现返回的任何方法也是 3 维格式,但是由于数组是“平面”的,因此“z”值始终为 0
  • 哦,nvm 你在我评论后编辑了这个问题。看起来你只需要使用一个二维数组。这将在行和列中设置您的数组。如果这听起来像你想要做的,我会发布更详细的答案
  • 是的,我想要一个二维数组。如果您发布更详细的答案,我将不胜感激。谢谢
  • @FatemeShirmohammadi - 什么语言?
  • 我建议你从选择一种编程语言开始。

标签: arrays list text double readline


【解决方案1】:

您的程序将在每一轮循环中读取一个数字 .. 所以制作两个计数器,一个用于行,另一个用于列,每次您读取一个数字时增加列计数器,直到您超过数字 3 .. 然后重置它到 0 并增加行计数器.. 看看这段代码:

double array[3][3];
int i = 0, j = 0;
double num;
num = inFile.readline();
while ( !inFile.eof() )
{
    array[i][j] = num;
    if ( j == 2 ) // check if its last element in row i
    {
        i++; // move to row i+1 in array
        j = 0; // reset index to first element in row
    }
    else
        j++; // move to next element in array

    num = inFile.readline();
} 

【讨论】:

  • 但是你没有做任何事情来将文本转换为双精度!
  • 如你所见..我已经用它的类型声明了变量..所以不需要转换它们
猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多