注意:这个问题非常简单,但是当我在谷歌搜索时,我没有得到任何明确的澄清.
我有以下计划
int main()
{
float c;
scanf("%f",&c);
printf("%f",c);
}
Run Code Online (Sandbox Code Playgroud)
o/p当我给出一个int值(e,g - 9)时,它显示为9.000000
但是当我给出像'a'这样的char值时,它没有显示并显示0.000000.I我知道memory representation of float它完全不同int但是当我给int value (9)它时它是如何显示但是当我给出时char (a)它也是一个int(97)是没有显示.
它是如何发生的.char分配期间的内存表示是什么.
Jon*_*art 10
请注意,char代码中的任何位置都没有.
这是方式scanf是应该的工作.如果你检查返回值scanf (就像你应该的那样!)你可能会看到它返回0,意味着没有匹配的项目.
当你给出scanf()一个"%f"格式字符串时,这意味着"我希望你尝试给我一个浮点数.当你提供像'a'这样的输入时,它不会匹配任何东西,因为'a'它不是一个有效的浮点数.
http://www.cplusplus.com/reference/cstdio/scanf/