我用的是gcc 4.4.7。
当我运行在简单逻辑(C)下时。
然后输入‘12’。
int var1 = 0;
int var2 = 0;
if(!scanf("%ld %ld",&var1, &var2))
{
printf("--- ERROR\n");
}
else
{
printf("--- var1 [%ld] \n", var1);
printf("--- var2 [%ld] \n", var2);
}结果: var1 -- var2 2
我已经知道%ld为长int工作。我真正想知道的是,当我试图扫描2个或更多的数字时,当我试图扫描2个或更多的数字时,扫描是如何工作的。。
发布于 2019-12-18 18:27:46
格式说明符%ld用于long int ( %lld用于long long int)。
int应该与%d格式说明符匹配。使用不符合变量类型的格式说明符会导致未定义的行为.
不要用!操作符检查scanf的返回值,而是使用预期的转换数,如下所示:
if(scanf("%d %d", &var1, &var2) != 2)
printf("--- ERROR\n");再读
https://stackoverflow.com/questions/59398025
复制相似问题