2014-11-22 52 views
1

如何在當前行中有數字的情況下將數字從文本文件讀入數組的程序,然後我想要在屏幕上打印該行並在有行時重複所有操作。這個怎麼做?有一次我聽說過動態數組,也許我應該使用它們?如何將數字讀入數組直到行尾?

int k = 0; 
int paz[14]; 
int sk; 
file >> n; // n - number of lines 
for (int i = 0; i < n; i++) 
{ 
    while (file >> sk) 
    { 

      paz[k] = sk; 
      cout << paz[k] << " "; 
      k++; 


    } 
    cout << endl; 
} 

文本文件: 在各線可以是形式爲0〜10個的數字。第一行顯示以逗號分隔的行數和行數

2, 
9 5 10 7 8 9 7 12 7 17, 
0 1 7 0 14 4 , 

回答

2

是的,您應該使用動態數組。他們被稱爲矢量。它們非常易於使用,是陣列的很好替代品。

與向量的代碼,應該是這樣的:

#include <vector> 
int k = 0; 
vector<int> paz; 
int sk; 
file >> n; // n - number of lines 
for (int i = 0; i < n; i++) 
{ 
    while (file >> sk) 
    { 

      paz.push_back(sk); 
      cout << paz[k] << " "; 
      k++; 


    } 
    cout << endl; 
} 
+0

感謝,代碼工作,但如何將這個矢量大小限制爲14? – 2014-11-22 16:45:52

+0

您可以通過執行paz.reserve(14)在開頭預留矢量空間;這意味着它將有14個元素的空間。當然,如果您想要放入更多元素,它只會調整大小。可在此處獲得的文檔http://www.cplusplus.com/reference/vector/vector/reserve/ – Aleksandar 2014-11-22 16:50:12