C++,我建立了一个链表,输出却什么都没有,怎么回事
部分程序:#include<string>#include<iostream>#include<fstream>#include<sstream>#include"stu...
部分程序:
#include<string>
#include<iostream>
#include<fstream>
#include<sstream>
#include"studentclass.h"
using namespace std;
student* student_read()
{
student *head, *p, *q;
fstream file("D:\\student_message.dat", ios::in || ios::out);
string str;
getline(file, str, '#');
int n = str.length() / 19;
string str1, str2;
float a[4];
stringstream ex;
getline(file, str1, char(32));
for (int m = 0;m < 3;m++)
{
getline(file, str2, char(32));
ex << str2;
ex >> a[m];
}
getline(file, str2, '\n');
ex << str2;
ex >> a[3];
p = head = new student(a[0], str1, a[1], a[2], a[3]);
for (int m = 0;m < n - 1;m++)
{
getline(file, str1, char(32));
for (int m = 0;m < 3;m++)
{
getline(file, str2, char(32));
ex << str2;
ex >> a[m];
}
getline(file, str2, '\n');
ex << str2;
ex >> a[3];
q = new student(a[0], str1, a[1], a[2], a[3]);
(*p).next = q;
p = q;
}
return head;
}
文件内容是:
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
# 展开
#include<string>
#include<iostream>
#include<fstream>
#include<sstream>
#include"studentclass.h"
using namespace std;
student* student_read()
{
student *head, *p, *q;
fstream file("D:\\student_message.dat", ios::in || ios::out);
string str;
getline(file, str, '#');
int n = str.length() / 19;
string str1, str2;
float a[4];
stringstream ex;
getline(file, str1, char(32));
for (int m = 0;m < 3;m++)
{
getline(file, str2, char(32));
ex << str2;
ex >> a[m];
}
getline(file, str2, '\n');
ex << str2;
ex >> a[3];
p = head = new student(a[0], str1, a[1], a[2], a[3]);
for (int m = 0;m < n - 1;m++)
{
getline(file, str1, char(32));
for (int m = 0;m < 3;m++)
{
getline(file, str2, char(32));
ex << str2;
ex >> a[m];
}
getline(file, str2, '\n');
ex << str2;
ex >> a[3];
q = new student(a[0], str1, a[1], a[2], a[3]);
(*p).next = q;
p = q;
}
return head;
}
文件内容是:
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
# 展开
2016-07-18 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
输出如下:
LinkList::LinkList()
在这个函数中,,建链表的这两句话p->next=Link->next;Link->next=p,用的头插法建链表,意思就是说每次把新的节点p放在链表首部,,所以建好的顺序肯定与输入元素的顺序是相反的.要想按原顺序,,则把上述的这两句改为 :
p->next=r->next;
r->next=p;
r=p;
即可。
在该函数体内,加一个变量声明 LNode *r=Link; 就好了。改制后运行结果如下:How many node do you want:2
1: 1
2: 2
How many node do you want:2
1: 3
2: 4
How many node do you want:2
1: 5
2: 6
The LinkList is 1 2
The LinkList is 3 4 5 6
Press any key to continue
LinkList::LinkList()
在这个函数中,,建链表的这两句话p->next=Link->next;Link->next=p,用的头插法建链表,意思就是说每次把新的节点p放在链表首部,,所以建好的顺序肯定与输入元素的顺序是相反的.要想按原顺序,,则把上述的这两句改为 :
p->next=r->next;
r->next=p;
r=p;
即可。
在该函数体内,加一个变量声明 LNode *r=Link; 就好了。改制后运行结果如下:How many node do you want:2
1: 1
2: 2
How many node do you want:2
1: 3
2: 4
How many node do you want:2
1: 5
2: 6
The LinkList is 1 2
The LinkList is 3 4 5 6
Press any key to continue
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询