带有消息的 scanf 给出了与没有它时不同的问题
scanf with a message gives a different question than without it
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("%d\n", a);
您必须输入(区分大小写):
Enter:120
将120
分配给a
。
匹配给定的格式,否则,它将 return 0
而不是 1
(成功分配的变量总数)。
要实现您实际想要的效果,请使用printf()
或puts()
显示输入的文本:
puts("Enter: ");
scanf("%d", &a);
如果你使用
scanf("Enter: %d",&a);
对于这种情况,您应该在 %d
之前输入任何内容:"Enter: "
,然后输入数字。
scanf()
跳过 "Enter: "
,然后接受号码。
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("%d\n", a);
您必须输入(区分大小写):
Enter:120
将120
分配给a
。
匹配给定的格式,否则,它将 return 0
而不是 1
(成功分配的变量总数)。
要实现您实际想要的效果,请使用printf()
或puts()
显示输入的文本:
puts("Enter: ");
scanf("%d", &a);
如果你使用
scanf("Enter: %d",&a);
对于这种情况,您应该在 %d
之前输入任何内容:"Enter: "
,然后输入数字。
scanf()
跳过 "Enter: "
,然后接受号码。