Float mit scanf auslesen in c
Ich habe eine Struktur, die eine Float-Variable enthält,
struct MyStruct{
float p;
}newMyStruct;
Und ich lese einen Wert hinein mitscanf
int main(){
scanf("%f",&(newMyStruct.p));
}
Das Problem ist, wenn ich es mit druckeprintf("%f",newMyStruct.p)
es druckt "0.000000". Außerdem erhalte ich eine Warnung, die besagt, dass das Arugment doppelt ist, während das Format erwartet, dass es float ist (Warnung für diescanf("%f",&(newMyStruct.p));
Anweisung) .Wenn ich änderescanf()
Syntax zuscanf("%0f",&(newMyStruct.p));
,printf("%0f",newMyStruct.p);
Gibt den Gleitkommawert korrekt aus, aber der Compiler gibt eine andere Warnung aus (etwas im Zusammenhang mit der Genauigkeit ist 0). Ebenfallsprintf("%2f",newMyStruct.p)
druckt die Gleitkommazahl in einem anderen Format.
Meine Frage ist also, wie ich all diese Warnungen loswird und eine richtige Float-Variable lese, die auch richtig gedruckt werden kann.
Ich habe keinen Zugriff auf den Laptop, auf dem ich im Allgemeinen codiere, und daher kann ich keine richtigen Warnungen geben.