我在浏览文件时遇到问题,我感到迷失方向,我似乎无法在我的代码中找到错误(我确定这是一个小错误,因为我之前已经完成了这个)这是一个家庭作业。赋值调用构造函数从文件加载内容。但是,在第一行读取后程序停止。
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;
}
}
答案 0 :(得分:1)
你应该替换这一行:
if (inFile)
由此
if (inFile.is_open())
和此:
while (inFile.is_open() && !inFile.eof())
通过
while (inFile.good())
答案 1 :(得分:1)
尝试用cin.get()
inFile.get()