为什么c[scanf]中的输入没有占用.2f%

  • 本文关键字:2f% scanf c
  • 更新时间 :
  • 英文 :


我正在写一个代码,将celsius转换为fahrenheit,在输入中输入.2f%,但它不起作用:-

#include <stdio.h>
int main()
{
float celcius, fahrenheit;
printf("Enter the Temperature in Celsius n");
scanf("%.2f", &celcius);
printf("Temperature in Fahrenheit is %.2f",celcius * 9/5+32);
return 0;
}

但在我从输入中删除.2f%之后,它就开始工作了。那里出了什么问题?

scanf()未指定为以有限精度读取文本。

scanf("%.2f", &celcius);是一个无效的说明符,因此结果是未定义的行为

代码可以使用scanf("%10f", &celcius);读取最多10个字符(在消耗了可选的前导空格之后(,但这并不能真正达到OP的目标。

提示:检查scanf("%.2f", &celcius);的返回值。

最新更新