24小时热门版块排行榜    

Znn3bq.jpeg
查看: 882  |  回复: 4

cryptliu

新虫 (初入文坛)

[求助] 关于 scanf 函数的问题 已有4人参与

void main()
{
        int n;
        while(1!=scanf("%d",&n))
        {
                printf("hello";
        }
}

如果 输入 字母比如 a的话,程序就会不断的输出hello....,进入死循环,不会等待输入

但是,我的意图是:如果输入的不是整数,比如是a,那么scanf()的放回值 就是-1,那么就会进入循环体,输出hello

第二次循环时,先判断1!=scanf("%d",&n) 是否为真,那么就会等待输入。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rbs

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
scanf函数又不是你设计的,它怎么会按你的意图给出返回值呢?

所以你应该自己设计函数,或者按照scanf提供的功能进行使用。
2楼2014-05-12 07:38:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

L-ios

金虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
你输入a后,由于a不符合类型,scanf函数读取后,返回-1,但是并没有从输入缓冲中删除a(因为是无效输入的原因),下次输入判断又会读取a,这就是你的程序进入死循环的原因。所以你应该在循环体中做一个跳过错误输入的处理,那样才会防止你出现的无限循环。

[ 发自手机版 http://muchong.com/3g ]
3楼2014-05-13 14:02:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

speeding1989

银虫 (小有名气)

【答案】应助回帖

你可能应该用getchar()函数吧?
sss
4楼2014-05-16 21:52:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

HanoiCreaf

新虫 (初入文坛)

【答案】应助回帖

这种单输入的,只要输入是正确的,scanf()函数返回值就只有一种,应该不会分情况了吧。。。
5楼2014-05-18 13:37:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cryptliu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 085600材料与化工329分求调剂 +8 叶zilin 2026-04-10 8/400 2026-04-10 23:26 by 314126402
[考研] 求调剂 +9 张番茄不炒蛋 2026-04-10 10/500 2026-04-10 22:07 by 小小虫瓜
[考研] 材料工程085601,270求调剂 +28 @ASDF1234 2026-04-08 30/1500 2026-04-10 19:28 by dick_runner
[考研] 一志愿京区985,085401,与本科专业一致,电子信息工程, +4 阳光开朗的男孩 2026-04-10 4/200 2026-04-10 18:27 by shenrf
[考研] 298求调剂 +8 钉叮咚冬瓜 2026-04-07 10/500 2026-04-10 11:25 by 高维春
[考研] 考研二轮调剂 +8 故人?? 2026-04-09 8/400 2026-04-10 09:44 by 青梅duoduo
[考研] 08600生物与医药-327 +10 18755400796 2026-04-05 10/500 2026-04-10 08:14 by kangsm
[考研] 284求调剂 +7 让我上岸吧阿西 2026-04-09 7/350 2026-04-09 18:59 by haironglove
[考研] 285求调剂 +20 哦呦呼o 2026-04-04 20/1000 2026-04-08 22:23 by yutian743
[考研] 285求调剂 +12 AZMK 2026-04-05 18/900 2026-04-08 20:43 by 逆水乘风
[考研] 298求调剂 +4 manman511 2026-04-05 4/200 2026-04-08 16:50 by tjzhao
[考研] 化学0703-一志愿211-338分求调剂 +10 vants 2026-04-05 11/550 2026-04-08 16:02 by screening
[考研] 304求调剂 +16 c297914 2026-04-05 17/850 2026-04-08 13:00 by grayjzr
[考研] 326分,一志愿沪9,求生物学调剂 +4 刘墨墨 2026-04-05 4/200 2026-04-08 06:22 by lijunpoly
[考研] 259求调剂 +5 就爱吃土豆呀呀 2026-04-07 5/250 2026-04-07 22:40 by JourneyLucky
[考研] 316求调剂 +4 15318418673 2026-04-07 4/200 2026-04-07 22:12 by hemengdong
[考研] 346分的生物与医药08600求调剂 +6 常雨阳上岸 2026-04-05 7/350 2026-04-06 12:36 by lys0704
[考研] 331求调剂 +8 于征yz 2026-04-05 8/400 2026-04-06 00:54 by fmesaito
[考研] 能动调剂326专硕 +4 wan112233 2026-04-04 4/200 2026-04-04 22:47 by yu221
信息提示
请填处理意见