C语言 循环的退出

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:16:40
void enter()
{
int i=0;
printf("\nInput information as:-->Name,Street,City,State,Eip\n");
do
{
scanf("%s %s %s %s %ld",&clas[i].name,&clas[i].street,&clas[i].city,&clas[i].state,&clas[i].eip);
i++;
} while(getchar()!='2');
count=i;
printf("\nNow the records as:");
display();
}

为什么当键入2时无法退出循环?是不是getchar()!='2'这句语句有问题?
应该如何改?do while语句只有break才能退出循环么?应怎么编写才能实现当且仅当键入2时退出循环。

scanf("%s %s %s %s %ld",&clas[i].name,&clas[i].street,&clas[i].city,&clas[i].state,&clas[i].eip);
着里有个scanf干扰了``

``可以设置一个变量a
scanf("%s %s %s %s %ld %d",&clas[i].name,&clas[i].street,&clas[i].city,&clas[i].state,&clas[i].eip,a);
while(a!=2)

建议在指令
i++;
之后添加一行指令
fflush(stdin);

scanf()和getchat()一起用时常常会出一些错误,你把它们都用scanf()
就好了.