我有一个包含浮点变量的结构,
struct MyStruct{
float p;
}newMyStruct;
我正在使用它读取一个值scanf
int main(){
scanf("%f",&(newMyStruct.p));
}
问题是当我使用printf("%f",newMyStruct.p)
它打印它时打印'0.000000'。我还收到一个警告,说参数是双倍的,而格式期望它是浮点数(scanf("%f",&(newMyStruct.p));
语句的警告)。当我将scanf()
语法更改为 时
scanf("%0f",&(newMyStruct.p));
,printf("%0f",newMyStruct.p);
会正确打印浮点值,但编译器会给出另一个警告(与精度相关的东西是 0 )。还printf("%2f",newMyStruct.p)
以其他格式打印浮点数。
所以,我的问题是如何摆脱所有这些警告并读取一个正确的浮点变量,该变量也可以正确打印。
我无法访问我通常在上面编写代码的笔记本电脑,因此我无法提供适当的警告。