从文件中读取c ++ [程序在读取时暂停]

时间:2017-03-15 19:23:13

标签: c++

我在浏览文件时遇到问题,我感到迷失方向,我似乎无法在我的代码中找到错误(我确定这是一个小错误,因为我之前已经完成了这个)这是一个家庭作业。赋值调用构造函数从文件加载内容。但是,在第一行读取后程序停止。

tree::tree()
    {

    root = NULL;
    load();
}

int tree::load()
{
    ifstream inFile;

    definition anEntry;

    char title[TITLE], info[INFO];

    inFile.open("CS_terms.txt");

    if (inFile.is_open())
    {
        cin.get(title, TITLE, ':');
        cin.ignore(TITLE, ':');
        cin.get(info, INFO, '\n');
        cin.ignore(INFO, '\n'); 

        anEntry.createEntry(title, info);
        insert(anEntry);

        while (inFile.is_open() && !inFile.eof())
        {
            cin.get(title, TITLE, ':');
            cin.ignore(TITLE, ':');
            cin.get(info, INFO, '\n');
            cin.ignore(INFO, '\n'); 
            anEntry.createEntry(title, info);
            insert(anEntry);
        }
        inFile.close();
        return 1;
    }
    else
    {
        cout << "No File" << endl;
        return 0;
    }
}

2 个答案:

答案 0 :(得分:1)

你应该替换这一行:

if (inFile)

由此

if (inFile.is_open())

和此:

while (inFile.is_open() && !inFile.eof())

通过

while (inFile.good()) 

答案 1 :(得分:1)

尝试用cin.get()

替换inFile.get()