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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage