[C++]求助链表的相关问题!

学长大人伐开心 2020-03-15 12:58:58

typedef struct list {
string data;
struct list *next;
} *Linklist, LNode;

Linklist Create() {
Linklist L = new LNode;
L->next = NULL;
string str;
LNode *p = L;
do {
cin >> str;
p->next = new LNode;
p->next->data = str;
p = p->next;
} while (cin.get() == '\n');
p->next = NULL;
return L;
}

上面是一部分代码,在实现的时候无论我输入多少个参数,最后他只会读入第一个参数,我不知道这是为什么。。。。
(例如我输入:abc defghi jkl mn,最后我输出整个链表时:abc)
希望大家能够指出我代码中的问题,谢谢!
...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2020-03-15
  • 打赏
  • 举报
回复
问题可能是出现在你的输入上 while(cin.get() == '\n') 这句话要求每个输入只能是一个不带空格和tab的字符串,然后回车 比如,输入 124 455 222 这样就可以进入三个 但是,如果你输入的是 123 456 222 那么就只能有一个数据被加入了 好好看看cin的说明去, cin一个字符串的时候,默认的遇到空格,tab或者回车就自动返回 但是空格,tab和回车还留在键盘缓冲当中呢; while当中的get会从键盘缓冲当中取一个字符, 这个字符不是回车就退出了 另外,你自己再增加一个Print函数 void Print(const Linklist L) { LNode * p = L->next; while (p ) { cout << p->data; p = p->next; } } 在创建之后,调用输出 一下看看 Linlist list = Create(); Print(list);

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧