编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
 29 123
发新话题
打印

★★来看看scanf("%d%d\n",&a,&b);

引用:
独孤小梦 在 2008-7-9 00:57 的发言:

我编译过了,输入两个数学以后,接着还得在输入1个数!但是为什么只是输入1个数呢?而不是在输入一次呢?
的确是这样啊

以前光知道这样不太正常,也没想别的..

TOP

当你成为程序`程序成为你``也就是你和程序合为一体的时候```

这个问题就你就知道了```

这个境界太高了````
女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
http://yzfy.org

TOP

引用:
woshiyun 在 2008-7-9 09:59 的发言:

用换行符结尾时,scanf会跳过换行符去读下一个字符,所以必须再输入一个数才能退出这个scanf()函数
这是C标准明确规定的还是编译器自己这样实现的啊?

TOP

这个我知道,举个例子你就明白了:
#include<stdio.h>
void main()
{
  int a,b;
  char ch;
  scanf("%d%d",a,b);
  ch=getchar();
  printf("%d,%d,%c",a,b,ch);
}

当你输入1 2[回车]时
直接就会输出1,2
即ch=getchar();没被运行.
如果scanf("%d%d",a,b);变成scanf("%d%d\n",a,b);
则可以运行,既输完1 2[回车]后还可以输入一个任意字符,并且也能输出。
这涉及到scanf()的用法,我建议你看看这个函数的用法!
天空没有翅膀的痕迹,但我已飞过!

TOP

不好意思scanf("%d%d",a,b);应该是scanf("%d%d",&a,&b);
打错了!
天空没有翅膀的痕迹,但我已飞过!

TOP

仔细看看书,会发现很多

[ 本帖最后由 hummhumm 于 2008-7-10 06:56 编辑 ]

TOP

引用:
♂鏴亻鉀} 在 2008-7-1 15:07 的发言:

呵呵,这个,就是你编译以后的,a和b以后的输出内容将在下行显示
转义字符:
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(V ...
说得不错哦

TOP

引用:
flysky2011++ 在 2008-7-10 03:37 的发言:

这个我知道,举个例子你就明白了:
#include
void main()
{
  int a,b;
  char ch;
  scanf("%d%d",a,b);
  ch=getchar();
  printf("%d,%d,%c",a,b,ch);
}

当你输入1 2[回车]时
直接就会输出1,2
即 ...
不是ch=getchar()没有运行,实际上ch='\n',打印出来当然是空白罗。
还是不明白scanf末尾为什么带和不带'\n'有这么大区别!

TOP

ding yi ge

TOP

 29 123
发新话题