返回
关于我们
分类

scanf(quot;%dnquot;);问题

日期: 2020-01-06 14:20 浏览次数 : 164

# include <stdio.h>
void main()
{
     int n;
     scanf("%dn",&n);
     printf("you typed %dn",n);
滚球体育,}

   以上的代码要怎么样输入?

原因:

n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。(事实上,scanf格式串中的任何空白字符都表示读取并放弃空白字符。而且,诸如%d这样的格式也会丢掉前边的空白,因此你通常根本不需要在scanf格式串中加入显式的空白。)
    因此,“%dn”中的n会让scanf读取到非空白字符串为止,而它可能需要读到下一行才能找到这个非空白字符串。这种情况下,去掉n仅仅使用“%d”即可(但你的程序可能需要跳过那个没有读入的换行符。)
参考:《你必须找到的495个C语言问题》
——Steve Summit著
——孙云,朱群英 译
——人民邮政出版社

思考下面问题:

# include <stdio.h>
void main()
{
     int n,m;
     scanf("%d-%dn",&n,&m);
     printf("you typed %dn",n);
     printf("you typed %dn",m);
}

怎么输入?输出什么,是不是和自己预想的一样?