我要做的是输入一个价格;
我的想法是只能输入全数字的时候才能被输出
现在我认为有三种情况:
第一种:纯数字123123123
第二种:先字母再数字asdasda123123
第三种:先数字再字母123123asdasd
以下是我现在的程序
#include
#include
int main() {
double a;
while (scanf("%lf", &a) != 1) {
printf("scan again\n");
fflush(stdin);
}
printf("%.2lf", a);
return 0;
}
这个程序目前只能实现第一种和第二种,第三种做不到,那么怎么实现第三种的情况呢
第三种就很麻烦了,你得用gets接收整行输入,然后逐个字符判断是否数字字符。三种都可以用这一种方式实现
int a = 0;
char c;
while((c=getchar()) != '\n')
{
if(c>='0' && c<='9')
a = a*10 + c - '0';
else
{
a = 0;
printf("scanf again\n");
fflush(stdin);
}
}
printf("%d",a);
fflush(stdin);
不起作用,改为
gets()