scanf("Enter: %d",&a);
为什么存储的数字与输入值不同?
scanf("%d",&a)
存储与前者不同的值。当输入数字12时,第一个语句存储数字32764,下一个语句存储12
函数scanf()
只是尝试接受程序员给定的格式,并尝试将它们分配到下一个参数中给定的变量中。对于printf()
这样的用户来说,打印一些内容然后向用户请求输入是不起作用的。
语法:
scanf("Enter: %d", &a);
不会出现类似以下情况:
Enter: // and wait...
它将等待输入Enter:
来读取a
。
int a;
scanf("Enter: %d", &a);
printf("%dn", a);
您必须输入(区分大小写(:
Enter:120
以将CCD_ 5分配给CCD_。
以匹配给定的格式,否则,它将返回0
,而不是1
(成功分配的变量总数(。
要实现您实际想要的内容,请使用printf()
或puts()
显示要输入的文本:
puts("Enter: ");
scanf("%d", &a);
如果使用
scanf("Enter: %d",&a);
对于这种情况,您应该在%d
之前输入任何内容:"Enter: "
,然后输入数字。
scanf()
跳过"Enter: "
,然后接受该号码。