2014-10-26 60 views
0

我正在努力进行类分配。我尝试过写这几种方式,我非常困惑。C++将文本中的数字读入整型数组,计算平均值

分配:

读十个整数值从一个从一个文件,并将它们存储在一个阵列 或载体。您将编写的程序将读取并存储从温度计读取的最后十个值。 值的读取应该在一个单独的函数中完成,该函数采用整数 数组作为参数,并从名为tempInput.txt的文件中读取: 示例:void readData(int tempArray [])文件编号将打开连续的线路连接到 。然后,从main调用另一个函数 ,其签名和返回类型如下:bool isDangerous(int tempArray []);该函数是危险的,将对tempArray中的值进行求和并除以10,将结果(平均值)存储在适当数据类型的另一个 变量中。然后,如果温度为 大于100,该函数应该返回true。如果它是100或者 更少,它应该返回false。在主,你应该使用功能 的方式,使得打印:临时就可以了(如果返回false),或在 温度太热(如> 100)

如果我写一个函数readData(int array [])然后我必须已经有一个数组作为参数传递。 但是,这个功能的全部目的是从文件读取,然后创建数组。我需要写一个占位符temp吗?阵列?

我是否需要将数组作为字符串然后解析为int或double?

我不工作的启动是:

#include <iostream> 
#include <fstream> 
#include <vector> 
using namespace std; 

//prototypes 
void readTemp(); 


int main() 
{ 
    int allTemp[10]; 

    readTemp(); 
} 

void ReadTemp() 
{ 
    ifstream in_File; 
    int inNumbers[10]; 
    double average; 

    in_File.open("tempInput.txt"); 

    for(int i = 0; i < 10; ++i) 
    { 
     in_File>>inNumbers[i]; 
     average = inNumbers[i++]/i; 
    } 
    cout<< average <<endl; 
} 

感谢您的任何提示。我无法在工作中读取文件,因此我还没有开始使用平均数据并返回布尔值的函数。

+0

您传递给“ReadData”的数组是您将从文件中填充数据的数组。在C++中,原始数组默认情况下通过引用传递,因此您将直接修改传入的数组。 – AndyG 2014-10-26 18:55:35

回答

0

“这一功能的全部目的是从文件中读取,然后创建数组”

没有!你必须事先有一个数组。要么足够大,要读取文件中的所有数据,或者必须使用动态内存管理。

尽管如此,您可以使用一些合适的容器,如std::vector<int>在从文件读取数据时接收数据。