带有消息的c-scanf给出了一个不同于没有消息的问题


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: ",然后接受该号码。

相关内容

最新更新