2014-11-22 50 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