2014-10-26 129 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>在從文件讀取數據時接收數據。