24小时热门版块排行榜    

查看: 855  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 298求调剂 +5 axyz3 2026-02-28 5/250 2026-03-01 06:45 by 刘兵
[考研] 272求调剂 +4 田智友 2026-02-28 4/200 2026-03-01 06:43 by 刘兵
[基金申请] 面上模板改不了页边距吧? +5 ieewxg 2026-02-25 6/300 2026-03-01 00:10 by addressing
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
[考研] 317一志愿华南理工电气工程求调剂 +5 Soliloquy_Q 2026-02-28 8/400 2026-02-28 23:36 by xyx2012xyx
[考研] 化工专硕348,一志愿985求调剂 +4 弗格个 2026-02-28 6/300 2026-02-28 22:00 by wang_dand
[考研] 292求调剂 +3 yhk_819 2026-02-28 3/150 2026-02-28 21:57 by gaoxiaoniuma
[考研] 290求调剂 +5 材料专硕调剂; 2026-02-28 6/300 2026-02-28 21:40 by gaoxiaoniuma
[考博] 26申博 +4 想申博! 2026-02-26 4/200 2026-02-28 21:37 by limorning
[考研] 材料学调剂 +5 提神豆沙包 2026-02-28 5/250 2026-02-28 21:34 by gaoxiaoniuma
[考研] 材料类求调剂 +6 wana_kiko 2026-02-28 6/300 2026-02-28 21:20 by gaoxiaoniuma
[考研] 求调剂 +4 repeatt?t 2026-02-28 4/200 2026-02-28 21:16 by gaoxiaoniuma
[考研] 298求调剂 +8 人间唯你是清欢 2026-02-28 11/550 2026-02-28 20:26 by L135790
[考研] 0856材料求调剂 +10 hyf hyf hyf 2026-02-28 11/550 2026-02-28 18:50 by 无际的草原
[考博] 博士自荐 +3 kkluvs 2026-02-28 3/150 2026-02-28 16:59 by StarAura
[考研] 265分求调剂不调专业和学校有行学上就 +4 礼堂丁真258 2026-02-28 6/300 2026-02-28 16:18 by 求调剂zz
[考研] 0856调剂 +3 刘梦微 2026-02-28 3/150 2026-02-28 13:22 by houyaoxu
[考研] 寻找调剂 +3 LYidhsjabdj 2026-02-28 3/150 2026-02-28 12:59 by miniwendy
[硕博家园] 博士自荐 +6 科研狗111 2026-02-26 9/450 2026-02-28 12:32 by seaskyy
[硕博家园] 【博士招生】太原理工大学2026化工博士 +4 N1ce_try 2026-02-24 8/400 2026-02-26 08:40 by N1ce_try
信息提示
请填处理意见