Lendo o flutuador usando o scanf em c
Eu tenho uma estrutura que contém uma variável float,
struct MyStruct{
float p;
}newMyStruct;
E eu estou lendo um valor para ele usandoscanf
int main(){
scanf("%f",&(newMyStruct.p));
}
O problema é quando imprimo usandoprintf("%f",newMyStruct.p)
imprime "0,000000". Também recebo um aviso que diz que o arugment é duplo enquanto o formato espera que seja float (aviso para oscanf("%f",&(newMyStruct.p));
declaração) .Quando eu mudarscanf()
sintaxe parascanf("%0f",&(newMyStruct.p));
,printf("%0f",newMyStruct.p);
imprime o valor float corretamente, mas o compilador fornece outro aviso (algo relacionado a precisão sendo 0). Além dissoprintf("%2f",newMyStruct.p)
imprime o número flutuante em algum outro formato.
Então, minha pergunta é como me livrar de todos esses avisos e ler uma variável float adequada que pode ser impressa corretamente também.
Eu não tenho acesso ao laptop eu geralmente código e, portanto, eu não posso fornecer avisos adequados.