printf 不产生输入值
printf not yielding input values
我有以下代码块。最后一行旨在生成用户输入的 X
、Y
和 P
值。然而它只有 returns
(0,0,0)
而不是用户给定的值。我错过了什么?
printf("What is the robot's initial X position? (cm)\n");
scanf("%f",&X);
printf("What is the robot's initial Y position? (cm)\n");
scanf("%f",&Y);
printf("What is the robot's initial angular position? (degrees)\n");
scanf("%f",&P);
printf("The initial position is (%d, %d, %d)\n", X,Y,P);
假设X
、Y
和P
是double
或float
类型(输入部分 , scanf()
),您需要使用 %f
或 %lf
格式说明符(根据需要)打印(或扫描)值。
- 要打印
float
或double
,您需要使用%f
- 扫描
float
,使用%f
,扫描双倍,使用%lf
。
对特定格式说明符使用错误类型的参数是undefined behaviour。 %d
需要一个 int
参数。因此,在您的情况下,将 %d
用于 float
或 double
类型的参数是 UB。
我有以下代码块。最后一行旨在生成用户输入的 X
、Y
和 P
值。然而它只有 returns
(0,0,0)
而不是用户给定的值。我错过了什么?
printf("What is the robot's initial X position? (cm)\n");
scanf("%f",&X);
printf("What is the robot's initial Y position? (cm)\n");
scanf("%f",&Y);
printf("What is the robot's initial angular position? (degrees)\n");
scanf("%f",&P);
printf("The initial position is (%d, %d, %d)\n", X,Y,P);
假设X
、Y
和P
是double
或float
类型(输入部分 , scanf()
),您需要使用 %f
或 %lf
格式说明符(根据需要)打印(或扫描)值。
- 要打印
float
或double
,您需要使用%f
- 扫描
float
,使用%f
,扫描双倍,使用%lf
。
对特定格式说明符使用错误类型的参数是undefined behaviour。 %d
需要一个 int
参数。因此,在您的情况下,将 %d
用于 float
或 double
类型的参数是 UB。