Czytanie pływaka za pomocą scanf w c

Mam strukturę, która zawiera zmienną zmiennoprzecinkową,

struct MyStruct{
    float p;
}newMyStruct;

I czytam wartość do niego używającscanf

int main(){
    scanf("%f",&(newMyStruct.p));
}

Problem polega na tym, kiedy go używamprintf("%f",newMyStruct.p) drukuje „0.000000”. Dostaję także ostrzeżenie, że arugment jest podwójny, podczas gdy format oczekuje, że będzie float (ostrzeżenie dlascanf("%f",&(newMyStruct.p)); oświadczenie). Kiedy się zmieniamscanf() składnia doscanf("%0f",&(newMyStruct.p));,printf("%0f",newMyStruct.p); wypisuje poprawnie wartość float, ale kompilator podaje kolejne ostrzeżenie (coś związane z precyzją równą 0). Równieżprintf("%2f",newMyStruct.p) drukuje liczbę zmiennoprzecinkową w innym formacie.

Tak więc moje pytanie brzmi: jak pozbyć się wszystkich tych ostrzeżeń i przeczytać odpowiednią zmienną zmiennoprzecinkową, która może być również prawidłowo wydrukowana.

Nie mam dostępu do laptopa, generalnie koduję i dlatego nie mogę zapewnić odpowiednich ostrzeżeń.

questionAnswers(1)

yourAnswerToTheQuestion