scanf("%d%d\n",&a,&b);
后面多加个\n,电脑会多要求用户输入一个回车,否则程序不会往下执行。- 可以指定输入数据所占列数,系统自动按要求截取所需数据,如:
scanf("%3d%3d",&a,&b);
若输入:5201314(回车)
系统自动将520赋给a,131赋给b。 - 与printf不同的是,输入数据时不能规定精度,如:
scanf("%7.2f",&a)/*a为浮点型*/
若输入:123456(回车)
a的值并不是1234.56,而是乱码。 - 如果在格式控制字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。如:
scanf("%d,%d",&a,%b);
输入时应用如下形式:3,4
如果输入:3(回车)4
变量b将得不到数据。
如果是:
scanf("%d□□□%d",&a,&b);
□代表空格,输入时应用如下形式:3□□□4
#include <stdio.h>
int main()
{
int i1,i2;
/*scanf("%d,%d",&i1,&i2);*/ /*加逗号的输入*/
scanf("i1=%d i2=%d",&i1,&i2); /*格式输入*/
printf("第一个数:%d\n",i1);
printf("第二个数:%d\n",i2);
return 0;
}
正确输入应该是:
如果输入错误会引起乱码:
5. 在输入数据时,遇到以下情况时认为结束:
(1)遇空格,或按回车或跳格(Tab键);
(2)按指定的宽度结束,如%d,只取3个字符;
(3)遇非法输入;
(4)%c只取一个字符。
如:
scanf("%2d%d%f",&a,&b,&c);
若输入:12345.26 78
三个变量的结果:a为12,b为345,c为0.26
6.在输入long类型数据时,格式字符必须是%ld;输入double时,格式字符必须是%lf,否则得不到正确的数据。