我需要计算浮点数的数字并保留数字。我可以将scanf用于%f或%c而不是%s,我可以使用getchar()。 我可以使用getchar但是数字松散
答案 0 :(得分:2)
为什么会丢失getchar
的数字?
strtod
确保它是有效的浮点值如果您仅限于getchar
:
getchar
答案 1 :(得分:1)
我看到你得到了答案,但这对你有用吗?
#include <stdio.h>
int main()
{
char *str = new char[30];
float flt;
int count = 0;
scanf( "%f", &flt);
printf( "number you entered is: %f\n", flt);
sprintf(str, "%f", flt );
for( ;str[count] != '\0'; count++ );
printf( "%f have %d digits", flt, count-1);
return 0;
}