//全局初始化 void Init() {
printf(\程序功能:输入一个字符串,判断它是否是无符号定点实数。\\n\ }
//从键盘读一行(没有空格),存于表达式缓冲区Buffer[]中,以'#'结束,并置ipBuffer=0; //读到非空字符串:返回 true;读到单独的\:返回 false int ReadALine() {
int l;
char *ex=\
printf(\或 直接输入无符号定点实数:\\n\if(!strcmp(Buffer,ex)) exit(0); //判断是否退出 printf(\请输入以“#”号结束的无符号定点实数,\\n\ scanf(\
l = strlen(Buffer); //读入的字符串的长度
if(l == 0) return ReadALine(); //输入了空字符串,重新输入 if(Buffer[0] == '#') return 0; //输入单独的'#'表示不再输入 Buffer[l] = '#'; //最后一个字符用结束标记'#'代替(本来是'\\0') ipBuffer = 0; //初始化缓冲区指针 return 1; }
//从缓冲区取一个字符,返回该字符的同时将它存于全局变量ch中 //成功:返回字符;不成功:返回'#' char GetChar() {
if((ch = Buffer[ipBuffer]) != '#' )
ipBuffer ++; //位置序号加1 return ch; }
printf(\注意:若要退出,请输入“exit”或“#”!\\n\
printf(\
七、测试的结果
该程序在Microsoft Visual C++ 6.0中调试通过,并且能够识别出一个输入串是否为一个有效的无符号数,测试结果符合题目要求。具体结果如下图:
6
7