新手请教!
链表类里的两个函数,一个从文件中读学生信息,一个打印出学生信息
template<class T>
void Link<T>::ReadInfos()
{
ifstream inf("D:\\students.txt");
int id;
string name;
int grade;
while(!inf.eof())
{
inf>>id;
inf>>name;
inf>>grade;
student* pStu = new student;
pStu->id = id;
pStu->name = name;
pStu->grade = grade;
//我把上端代码改为
//student stu;
//stu.id = id;
//stu.name = name;
//stu.grade = grade;
//就是结构体声明时不用指针,为何最后结果打出来成乱码了???
//这两种方式有哪里不同?是不是还是堆和栈的问题?是的话高手能不能给个相关的资料,我才学不知道针对性的上哪儿去查。
Node* p = new Node;
p->pData = pStu; //p->pData = &stu;
p->next = NULL;
if(head == NULL)
{
head = p;
}
else
{
Node* q = head;
while(q->next)
{
q = q->next;
}
q->next = p;
}
}
}
template <class T>
void Link<T>::ShowInfos()
{
Node* q = head;
if(head == NULL)
{
cout<<"无学生信息!";
}
else
{
while(q->next)
{
cout<<(*(q->pData)).id<<" "<<(*(q->pData)).name<<" "<<(*(q->pData)).grade<<endl;
q = q->next;
}
}
}