我正在尝试读取文本文件并将其存储在数组中,但我的程序仍然陷入无限循环。
这是我的代码:
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;
}
答案 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
变量打印从文件中读取的项目数。