将数据文件读入数组

时间:2012-12-18 09:00:35

标签: c++ arrays loops text-files

我正在尝试读取文本文件并将其存储在数组中,但我的程序仍然陷入无限循环。

这是我的代码:

int main () {
    const int size = 10000; //s = array size
    int ID[size];
    int count = 0; //loop counter
    ifstream employees;

    employees.open("Employees.txt");
    while(count < size && employees >> ID[count]) {
        count++;
    }

    employees.close(); //close the file 

    for(count = 0; count < size; count++) { // to display the array 
        cout << ID[count] << " ";
    }
    cout << endl;
}

1 个答案:

答案 0 :(得分:2)

首先,您应该使用std::vector<int> ID;而不是原始int数组。

其次,你的循环看起来应该更像这样:

std:string line;
while(std::getline(employees, line)) //read a line from the file
{
    ID.push_back(atoi(line.c_str()));  //add line read to vector by converting to int
}

编辑:

上述代码中的问题是:

for(count = 0; count < size; count++) { 

您正在重复使用之前使用的计数变量来计算从文件中读取的项目数。

它应该是这样的:

for (int x = 0;  x < count; x++) {
   std::cout << ID[x] << " ";
}

在这里,您使用count变量打印从文件中读取的项目数。