项目在运行时终止 - 将其缩小到此代码块

时间:2015-12-13 09:31:52

标签: c++

我是c ++编程的新手,这个学期的第一课,有人可以帮我确定为什么这个代码块导致我的程序遇到意外错误并在运行时终止?这是一个较大程序的较小块,它至少使它成为while循环,但这就是我能想到的。提前感谢您的帮助:

void loadPresidents(bag& bagOfPresidents){
   ifstream inFile("PresidentDataBase.txt");
if(! inFile )
    cout << "File not found" << endl;
else
{
    cout << "File found!!" << endl;
    string number, name, bdDates, dtOffice, dlOffice, party, pOffice, vPresident;

    while(inFile.eof)  // while not end of file
    {
        getline(inFile, number);
        getline(inFile, name);
        getline(inFile, bdDates);
        getline(inFile, dtOffice);
        getline(inFile, dlOffice);
        getline(inFile, party);
        getline(inFile, pOffice);
        getline(inFile, vPresident);

        bagOfPresidents.add(Presidents(number, name, bdDates, dtOffice, dlOffice, party, pOffice, vPresident) );

2 个答案:

答案 0 :(得分:1)

代码不完整但你应该至少使用infile.eof(),因为infile.eof是一个(成员)函数指针,并且总是非零(如此)。

infile.eof()将调用成员函数并返回合理的内容。

答案 1 :(得分:1)

eof命名成员函数(或方法)。你应该按如下方式使用它。

while(inFile.eof())

您使用它的方式(即没有强制要求调用该函数的括号)意味着您将获取该函数的地址。由于该地址不为零,因此它将始终被解释为真实条件。