float 変数を含む構造体があり、
struct MyStruct{
float p;
}newMyStruct;
そして、私はそれに値を読み込んでいますscanf
int main(){
scanf("%f",&(newMyStruct.p));
}
問題は、printf("%f",newMyStruct.p)
「0.000000」を印刷して印刷するときです。また、引数が double であるという警告が表示されますが、形式は float であることが期待されます (scanf("%f",&(newMyStruct.p));
ステートメントの警告) 。scanf()
構文を
scanf("%0f",&(newMyStruct.p));
に変更するとprintf("%0f",newMyStruct.p);
、float 値が正しく出力されますが、コンパイラは別の警告を表示します (精度が 0 であることに関連するもの) )。またprintf("%2f",newMyStruct.p)
、浮動小数点数を他の形式で出力します。
したがって、私の質問は、これらの警告をすべて取り除き、適切に出力できる適切な float 変数を読み取るにはどうすればよいかということです。
私は通常、コードを書いているラップトップにアクセスできないため、適切な警告を提供できません。