【C语言】ATM模拟系统强壮性

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:40:59
void cn() //定义新开帐户函数
{
int i,j;
char ch,ch1;
int x=0;
float qian;
char jk[10]; //字义一个变量
printf("请输入姓名:"); //输出语句
scanf("%s",clients[number].xingming); //接收一个字符
fflush(stdin); //清空缓冲区
while(1)
{
i=0;
j=0;
printf("请输入密码:"); //输出语句
ch=getch();
while(ch!='\r')
{
clients[number].mima[i++]=ch; //接收一个字符
printf("*");
ch=getch();
}
clients[number].mima[i]='\0';
printf("\n");
printf("请再次输入密码");
ch1=getch();
while(ch1!='\r')
{
jk[j++]=ch1;
printf("*");
ch1=getch();
}
jk[j]='\0';
printf("\n");
if(strcmp(clients[number].mima,jk)==0)
{
clien

又碰到你了!对于这个问题,建议你去问你的老师,毕竟在学校里面和老师面对面交谈更能表达你的程序的想法之类的。这样在百度上你也就是得到个答案而已,没意思~

举个例子:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void main()
{
char money[30];
int i, l;
float mn;

do
{
scanf("%s", money);
l = strlen(money);

for (i = 0; i < l; ++i)
{
if ((money[i] != '.') && (money[i] < '0' || money[i] > '9'))
break;
}

if (i != l)
printf("Error! Please input again.\n");
} while (i != l);

mn = atof(money);
printf("%f\n", mn);
}

输入钱 的时候可以按字串读取
然后判断里面是否只为数字

如果不是,继续循环
大致上是:

int flag = 0;
do
{
//get a string for the money
//check if there is other character other than digit
//if exist, flag = 0; else flag = 1;
}while(flag != 1);