又一道小题目 呵呵 大家帮帮忙
比如说在同一行输入两数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); }