鱼C论坛

 找回密码
 立即注册
查看: 2920|回复: 3

[已解决]初始化链表的问题

[复制链接]
发表于 2016-3-23 11:32:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在初始化一个链表的时候,例程中采用的“输入数字,输入0结束”。
这样限制了链表中的元素不能为0。

有没有其他的办法,例如输入回车结束或者输入其他的esc结束?
我尝试了,但是回车要判断'\n',输入数字判断int类型,两个要怎么同时判断。

求解答,最好能附上代码~
最佳答案
2016-5-2 19:24:32
可以考虑输入非数字退出。
这一点可以利用`scanf`函数的返回值完成,`scanf`函数的返回值是成功读取的变量个数。
所以可以这样写:
  1. while(scanf("%d", &x) == 1){
  2.     // doSomeThing;
  3. }
复制代码

这样,如果输入非数字,那么`scanf`的返回值就不是1,循环退出,否则循环正常进行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-4 16:32:57 | 显示全部楼层
帮顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-10 17:11:42 | 显示全部楼层
但是0是一个条件没这个条件就不能退出你要是想要回车的话可以用回车的 阿斯克码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-2 19:24:32 | 显示全部楼层    本楼为最佳答案   
可以考虑输入非数字退出。
这一点可以利用`scanf`函数的返回值完成,`scanf`函数的返回值是成功读取的变量个数。
所以可以这样写:
  1. while(scanf("%d", &x) == 1){
  2.     // doSomeThing;
  3. }
复制代码

这样,如果输入非数字,那么`scanf`的返回值就不是1,循环退出,否则循环正常进行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 02:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表