<span class="k-widget k-combobox k-header">
<span tabindex="-1" unselectable="on" class="k-dropdown-wrap k-state-default k-state-hover">
<input name="BankId_input" class="k-input valid" type="text" autocomplete="off" maxlength="524288" role="combobox" aria-expanded="false" tabindex="0" aria-disabled="false" aria-readonly="false" aria-autocomplete="both" aria-owns=" BankId_listbox" aria-busy="false" aria-activedescendant="BankId_option_selected" aria-invalid="false" style="width: 100%;">
<span tabindex="-1" unselectable="on" class="k-select">
<span unselectable="on" class="k-icon k-i-arrow-s" role="button" tabindex="-1" aria-controls="BankId_listbox">select</span>
</span>
</span>
<input data-val="true" data-val-number="The field Bank Combo must be a number." id="BankId" name="BankId" no-custom-input="true" data-bind="enable : IsCityReadOnly" type="text" data-role="combobox" aria-disabled="false" aria-readonly="false" style="display: none;" aria-invalid="false" aria-describedby="BankId-error" class="valid">
如果向#include<stdio.h>
int main()
{
int i;
printf("%d\n", scanf("%d", &i) );
return 0;
}
提供了某个值,则程序的输出仍为1.为什么?
答案 0 :(得分:2)
如果提供了一些值scanf,但程序的输出仍为1.为什么?
因为scanf
将int
作为per the documentation返回。 scanf
将返回已成功扫描和分配的项目总数。
在您的情况下,scanf
如果成功扫描int
中的stdin
,则会返回1,否则它将返回0.它还将返回-1
在遇到EOF
时。然后,此值由您拥有的printf
打印。
如果您要打印i
的值,请分隔scanf
和printf
,即使用
int i;
scanf("%d", &i)
printf("%d\n", i);
而不是
int i;
printf("%d\n" , scanf("%d", &i) );
答案 1 :(得分:2)
在下面的陈述中,
printf("%d\n" , scanf("%d", &i) );
您不打印{em>扫描并存储的值scanf()
,您正在打印返回值 of scanf()
。
由scanf()
扫描的值将存储在提供的参数中,此处为变量i
。
如果要打印扫描值,则必须使用存储值的相同变量,即i
。
printf("The scanned value is %d\n", i);
即说明,main()
的推荐签名是int main(void)
。
答案 2 :(得分:1)
someobj1
的返回类型是成功填充的参数列表的项目数。在您的情况下,正在读取一个项目,如果成功scanf()
将由1
返回。以下内容将返回scanf()
,因为有两个项目正在阅读。
2