printf不产生输入值
我有以下代码块。 最后一行用于产生用户输入的X
, Y
和P
值的值。 但它只会返回
(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
,扫描double,使用%lf
。
对特定格式说明符使用错误类型的参数是未定义的行为 。 %d
需要一个int
参数。 因此,在您的情况下,使用%d
表示float
或double
类型的参数是UB。