scanf("%d\n");问题

作者在 2011-08-31 16:13:47 发布以下内容
# include <stdio.h>
void main()
{
     int n;
     scanf("%d\n",&n);
     printf("you typed %d\n",n);
}
   以上的代码要怎么样输入?
原因:
\n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。(事实上,scanf格式串中的任何空白字符都表示读取并放弃空白字符。而且,诸如%d这样的格式也会丢掉前边的空白,因此你通常根本不需要在scanf格式串中加入显式的空白。)
    因此,“%d\n”中的\n会让scanf读取到非空白字符串为止,而它可能需要读到下一行才能找到这个非空白字符串。这种情况下,去掉\n仅仅使用“%d”即可(但你的程序可能需要跳过那个没有读入的换行符。)
参考:《你必须找到的495个C语言问题》
——Steve Summit著
——孙云,朱群英 译
——人民邮政出版社
思考下面问题:
# include <stdio.h>
void main()
{
     int n,m;
     scanf("%d-%d\n",&n,&m);
     printf("you typed %d\n",n);
     printf("you typed %d\n",m);
}
怎么输入?输出什么,是不是和自己预想的一样?
C语言问题 | 阅读 1857 次
文章评论,共9条
edwardflee
2011-08-31 17:20
1
知道我费了多大劲才克服掉在scanf里面敲\n吗<img src="image/face/3.gif" class="face"><br />
《你必须找到的495个C语言问题》有趣吗?进阶用的吧?
laznrbfe(作者)
2011-08-31 17:22
2
<div class="quote"><span class="q"><b>edwardflee</b>: 知道我费了多大劲才克服掉在scanf里面敲\n吗<img src="image/face/3.gif" class="face"><br />
《你必须找到的495个C语言问题》有趣吗?进阶用的吧?</span></div>书上有一些细节上的东西,很容易忽视的知识。我只是偶尔看看。
尤慕思
2011-09-02 23:56
3
编程中国里基础文章比较多,理论性的比较少,<br />
在你学习的过程中有什么所得尽量都写在这里。<br />
希望网站和我们一起,成长地更壮大。<img src="image/face/18.gif" class="face">
laznrbfe(作者)
2011-09-03 22:27
4
<div class="quote"><span class="q"><b>尤慕思</b>: 编程中国里基础文章比较多,理论性的比较少,<br />
在你学习的过程中有什么所得尽量都写在这里。<br />
希望网站和我们一起,成长地更壮大。<img src="image/face/18.gif" class="face"></span></div><img src="image/face/2.gif" class="face">
小赵q1
2011-09-06 03:33
5
我知道是什么原因了,在scanf()里面是不能加%n的,因为你如果加了的话,那么输入一个变量后按回车键它就直接换行了,想要得到自己要的结果还要再重新输入你刚才输的变量再按回车才能出来你要的结果;<br />
不加%n输入变量后按回车就直接出来运行的结果了。<br />
你那个思考的题要输入“一个变量—另一个变量”,回车然后再输入一遍回车才能出来结果。
laznrbfe(作者)
2011-09-07 21:20
6
<div class="quote"><span class="q"><b>小赵q1</b>: 我知道是什么原因了,在scanf()里面是不能加%n的,因为你如果加了的话,那么输入一个变量后按回车键它就直接换行了,想要得到自己要的结果还要再重新输入你刚才</span></div>scanf里可以加%n吧。只是输入后,得到的,可能不是你想要的结果。
小赵q1
2011-09-08 03:15
7
<div class="quote"><span class="q"><b>laznrbfe</b>: scanf里可以加%n吧。只是输入后,得到的,可能不是你想要的结果。</span></div>哦,反正我是实验过一次以后,感觉还是不加效果好,就没有再加了。
laznrbfe(作者)
2011-09-09 19:23
8
<div class="quote"><span class="q"><b>小赵q1</b>: 哦,反正我是实验过一次以后,感觉还是不加效果好,就没有再加了。</span></div>我觉得学习C,C++就是要修改,增加,删减,等等操作。再看运行的结果是什么。这样更容易学会语法。
小赵q1
2011-09-14 17:15
9
<div class="quote"><span class="q"><b>laznrbfe</b>: 我觉得学习C,C++就是要修改,增加,删减,等等操作。再看运行的结果是什么。这样更容易学会语法。</span></div><img src="image/face/3.gif" class="face">恩,里面的有些东西是可以换的,换了以后看看效果就能知道这个东西在C程序里起的是什么作用,对于菜鸟来说理解了它的作用了以后会有很多解题思路的。
游客请输入验证码
浏览48170次