2013-04-17 81 views
-1

我有下面的代碼填充數組並打印出數組,然後以相反的順序打印數組。我的問題是現在我已經完成了,我怎樣才能代替從循環填充列表,而不是從文件填充它?從文件讀取到數組

代碼:

void popArray(int array1[]){ 
    for(int x = 0; x < 10; x++){ 
    array1[x] = x; 
    cout << setw(2) << array1[x]; 
    } 
} 

void reverseList(int array1[]){ 
    for(int x = 9; x > -1; x--){ 
    cout << setw(2) << array1[x]; 
    } 
} 


int main() 
{ 
    int array1[9]; 

    popArray(array1); 

    cout << "\n"; 

    reverseList(array1); 
} 
+2

什麼是文件格式?順便說一下,您正在訪問數組的邊界之外。我想你想要一個大小爲10的數組,所以它應該是'int array1 [10];'。 –

+3

查找'std :: ifstream'有大量的例子和文檔。 –

+0

是文件二進制還是一次只讀一行,將字符串轉換爲整數然後將其存儲到數組中? –

回答

0

這取決於你是如何計劃讓數字在您的文件。 你可以在一行上各有一個整數,並繼續讀取文件直到結束,或者你可以有csv值。 然後,您可以讀取popArray函數中的文件。 下面是在讀一本文件中的一些參考: http://www.cplusplus.com/doc/tutorial/files/

如果您計劃在該文件中的每一行使用一個整數,下面是你可以使用。

void popArray(int array1[], std::string filename) { 
    ifstream myfile (filename); 
    while (myfile.good()) 
    { 
     std::string line; 

     getline (myfile,line); 
     array1[x] = atoi(line.c_str()); 
     cout << line << endl; 
    } 
    myfile.close(); 
}