gpt4 book ai didi

c - 为什么将 char 值分配给 float 不起作用

转载 作者:太空狗 更新时间:2023-10-29 15:45:56 24 4
gpt4 key购买 nike

注意:这个问题很简单,但是我在谷歌搜索时没有得到任何明确的解释。

我有以下程序

int main()
{
float c;
scanf("%f",&c);
printf("%f",c);
}

对/对当我给出一个 int 值(例如 - 9)时,它显示为 9.000000

但是当我给出像“a”这样的 char 值时,它不显示并显示 0.000000。我知道 float 的内存表示int 完全不同,但随后当我给出 int value (9) 时,它是如何显示的,但是当我给出 char (a) 时,它也是一个 int (97) 却没有显示。

这是怎么发生的。 char 分配期间的内存表示是什么。

最佳答案

请注意,您的代码中的任何地方都没有 char

这是路scanf 应该工作。如果您检查 scanf 的返回值(就像您应该的那样!),您可能会看到它返回 0,这意味着没有匹配项。

当你给 scanf() 一个 "%f" 格式字符串时,这意味着“我想让你试着给我一个 float 数字。当您提供像“a”这样的输入时,它不会匹配任何内容,因为 “a” 不是有效的 float 。

http://www.cplusplus.com/reference/cstdio/scanf/

关于c - 为什么将 char 值分配给 float 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17668762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com