又一道小题目 呵呵 大家帮帮忙
比如说在同一行输入两数a和b,当输入a=0时退出循环,但不必输入b怎么实现啊while(1)
{
scanf("%d %d",&a,&b);
if(a==0)
break;
}这样的话只有输完b才会进行判断,怎样才能不输入b就判断啊 而且a,b要在同一行里
呵呵 谢谢
程序代码:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 100 //缓冲区的最大值
int GetInt(); //从键盘得到一个整数(从正常输入开始到非法输入结束)
void main()
{
int a,b,i=0;
while(1)
{
a=GetInt();
if(a==0)
break;
b=GetInt();
}
}
//从键盘得到一个整数(从正常输入开始到非法输入结束)
int GetInt()
{
char buffer[MAX]; //存储字符的缓冲区
int flag=0,tmp;
int i=0;
//从屏幕获取字符存到字符串buffer[MAX]中
do
{
tmp=getch();
if(tmp>='0'&&tmp<='9')
{
flag=1;
buffer[i++]=tmp;
}
putchar(tmp); //输出用户敲入的字符
if(tmp=='\r')
putchar('\n'); //对回车进行特殊处理,追加输入换行
}
while(tmp>='0'&&tmp<='9'&&i<MAX-1||flag==0);
buffer[i]='\0';
//将字符串转换成整数并返回
return atoi(buffer);
}