Lectura de float utilizando scanf en c
Tengo una estructura que contiene una variable flotante,
struct MyStruct{
float p;
}newMyStruct;
Y estoy leyendo un valor en él usandoscanf
int main(){
scanf("%f",&(newMyStruct.p));
}
El problema es cuando lo imprimo usandoprintf("%f",newMyStruct.p)
imprime '0.000000'. También recibo una advertencia que dice que la regla es doble mientras que el formato espera que sea flotante (advertencia para elscanf("%f",&(newMyStruct.p));
declaración). cuando me cambioscanf()
sintaxis parascanf("%0f",&(newMyStruct.p));
,printf("%0f",newMyStruct.p);
imprime el valor flotante correctamente pero el compilador emite otra advertencia (algo relacionado con la precisión es 0). tambiénprintf("%2f",newMyStruct.p)
imprime el número flotante en algún otro formato.
Entonces, mi pregunta es cómo me deshago de todas estas advertencias y leo una variable flotante adecuada que también se puede imprimir correctamente.
No tengo acceso a la computadora portátil en la que generalmente codifico y, por lo tanto, no puedo proporcionar las advertencias adecuadas.