3,881
社区成员
发帖
与我相关
我的任务
分享test.c:
#include <stdio.h>
char s[40];
char c;
double d;
void main() {
while (1) {
printf("\nInput a double number:");
fflush(stdout);
rewind(stdin);
fgets(s,40,stdin);
if (2==sscanf(s,"%lf%c",&d,&c)) {
if ('\n'==c) break;
}
}
printf("%lg\n",d);
}
测试:
C:\>test
Input a double number:(输入回车)
Input a double number:abc
Input a double number:啥
Input a double number:12x
Input a double number:12.1y
Input a double number:.
Input a double number:.1
0.1
C:\>test
Input a double number:-1.2e3
-1200
C:\>test
Input a double number:-1.2345678901234567890e3
-1234.57
C:\>test
Input a double number:123456789012345678901234567890
1.23457e+029
C:\>test
Input a double number:1e3000
1.#INF
C:\>test
Input a double number:1234.5E-2
12.345
C:\>