我目前正在用 C++ 编写一个程序,该程序从 .txt 文件中获取信息并动态分配它以供以后参考。信息采用格式(名姓)(薪水)(扣除)(%奖金)。我在头文件中创建了一个结构,如下所示:
struct PayrollInfo
{
string first, last;
float salary, deduction, bonus;
PayrollInfo *next;
};
我的问题是,当我在主函数调用的函数中调用变量时,编译器给我一个错误,说变量“超出范围”。我的印象是,因为我在主函数中声明了结构指针,这些指针将传递给调用的函数。我能做些什么来解决这个问题?我在下面包含了我的代码。Open 是我拥有的一个函数,它可以打开文件并在文件存在时返回 0,等等。另外,我是使用动态内存分配的新手,所以如果我的 Read() 函数有任何明显的错误,请告诉我!
main()
{
PayrollInfo *head, *tail, *newp, *tmp;
head = tail = newp = tmp = NULL;
while(newp = Read() )
.
.
.
PayrollInfo *Read()
{
PayrollInfo *tmp = NULL;
if (Open() == 0)
{
tmp = new PayrollInfo;
tmp->first = first;
tmp->last = last;
tmp->salary = salary;
tmp->bonus = bonus;
tmp->deduction = deduction;
}
else
return NULL;
return tmp;
}