gpt4 book ai didi

c - 关于 C 中的转换说明符

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:10 24 4
gpt4 key购买 nike

我对 C 中的转换说明符有疑问。

在第 5 句中,如果我使用 %lf%Lf 而不是 %f,则不会发生错误。但是为什么使用%f会出错呢?

#include <stdio.h>

int main(void)
{
long double num;
printf("value: ");
scanf("%f",&num); // If I use %lf or %Lf instead of %f, no error occurs.
printf("value: %f \n",num);
}

最佳答案

%f 用于读取 float,而不是 doublelong double .

%lf 用于读取 double

%Lf 用于读取 long double

如果您的程序在变量类型为long double 时使用%lf,那只是巧合。它起作用可能是因为 sizeof(double) 与您平台上的 sizeof(long double) 相同。理论上,这是未定义的行为。

关于c - 关于 C 中的转换说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427832/

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