繁体   English   中英

为什么在整数变量中输入浮点值会给我一个奇怪的答案?

[英]Why entering a float value in the integer variable is giving me strange answer?

在下面的C程序中

#include<stdio.h>
int main()
{
    int a,b;
    printf("Enter the values of a and b : ");
    scanf("%d %d",&a,&b);
    printf("%d %d",a,b);
    return 0;

}

如果我给值“ 3.2”,我得到的答案是= 3 1有人可以解释发生了什么吗? 我正在使用DEV C ++编译器。

函数scanf试图读取两个int值。 您给它3.2 ,它会将3读入a ,在a停止.

然后,它尝试将.2读入b但失败,因为. 不被视为whitespace

因此,永远不会设置b并且该函数返回1以显示其转换后的1输入。

您可以通过初始化int b=42来显示这一点,在scanf之后,您会发现b仍然是42

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM