标题:请教一个scanf函数挂起的问题
只看楼主
alei21
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-7-20
 问题点数:0 回复次数:12 
请教一个scanf函数挂起的问题
请解释下面这段话(摘自国外教材中的一段话):
   【如果有格式串"%d\n",那么scanf函数将跳过空白字符,读取一个整数,然后跳到下一个非空白字符处。像这样的格式串可能会导致交互式程序一直“挂起”直到用户输入一个非空白字符为止。

   小弟愚昧,愣是没看懂(并做了一下程序!)。

#include<stdio.h>

main()
{
    int test2;

    scanf("%d ",&test2);          /*"%d"后面有个空格*/
    
    printf("%d",test2);

    return 0;

}

我在输入一个整数后再输入一个空格->回车,程序依然停在等待输入的界面!
然后我做了以下操作:输入一个整数后再输入一个空格,接着再输入一非空字符才可以继续运行!
这到底是什么原因呀?请高手解答,不甚感激!

                请解释一下红色字体的那句话!谢谢!

[[it] 本帖最后由 alei21 于 2008-11-6 12:01 编辑 [/it]]
收到的鲜花
  • 随心2008-11-05 22:21 送鲜花  10朵   附言:看得出你是认真思考了,但要注意不要钻牛角 ...
搜索更多相关主题的帖子: scanf 
2008-11-05 20:36
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
得分:0 
输入结束后,还要再输入一个格才能结束,没明白你说的挂起是什么意思

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2008-11-05 22:10
yuxiang8200
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-11-25
得分:0 
你说的挂起是嘛意思呀?不太懂呀!
这个程序运行到scanf("%d ",&test2);当然是暂停运行啦,等待用户输入一个整数后,然后继续执行!
2008-11-05 22:26
gzbao9999
Rank: 1
等 级:新手上路
威 望:1
帖 子:40
专家分:0
注 册:2008-11-5
得分:0 
试验了一下
其实scanf("%d ",&test2);
也挂不起
可以这样输入
1221 0  //这样的printf的结果就是1221  0前面要有个空格0代笔任意数字
也可以这样输入
1221-   //-可以为任意非数字的字符 如果是数字 则要像上面一样 用空格隔开
2008-11-05 22:38
alei21
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-7-20
得分:0 
回复 2# 的帖子
输入结束后再输入空格,还是不能结束!输入再多的空格,程序都停止(挂起)在等待输入的界面,不运行后面的语句!

用时间干掉一切!
2008-11-06 11:49
Tchong
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2008-10-17
得分:0 
应该是错误做法,你没有使用输入语句
2008-11-07 00:05
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
今天我也遇到类似的问题,,就是scanf(“%d\n”,&m)  这样程序也是会挂起的
     期待得到答案
2008-11-08 00:37
恩怨情仇
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2008-11-8
得分:0 
我也遇见过这样的问题,你直接把输入函数里面的那个空格删掉就行了,至于原因,嘿嘿,不好意思正在考虑
2008-11-08 03:09
恩怨情仇
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2008-11-8
得分:0 
在回复下楼上的你把“\n”删了就行
2008-11-08 03:14
alei21
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-7-20
得分:0 
晕死..
     【原因】
              ——至今未解决!

望高手给予解答,感激不尽!

用时间干掉一切!
2008-11-09 23:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-242610-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042519 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved