3

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

这是我的代码:

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;
}
4

1 回答 1

2

首先,您应该使用 astd::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变量打印从文件中读取的项目数。

于 2012-12-18T09:13:13.493 回答