⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fngetdate.cpp

📁 1. 系统概述: 图书馆管理系统是运行于Windows系统下的应用软件
💻 CPP
字号:
#define REINPUTAGAIN	10
#define TOO_LONG		20
#define WRONG			30

#include<stdlib.h>
#include<iostream.h>
#include<string>
#include<ctype.h>
using std::string;

void fnGetDate(int &i)		//用于获得输入的整数i
{
	string str;		//不可用static,因为会影响递归调用
	static char s_cTemp;
	bool bError = false;

	while(1)
	{
		cin.get(s_cTemp);
		if(s_cTemp=='\n')break;
		else str+=s_cTemp;
	}
	try{
		if(str.length() == 0)throw REINPUTAGAIN;
		else if(str.length() > 9){
			cout << "太大了!请重输:";
			throw TOO_LONG;
		}
		if (!isdigit(str[0]) && str[0] != '-'){
			cout<<"输入不合法,请重输:	";
			throw WRONG;
		}
		for(short j=1;str[j]!='\0';j++)		
		{
			if(!isdigit(str[j]))		//int isdigit(int ch)	是否为数字:是-非0;不是-0
			{
				cout<<"error!请输入整数:";
				throw WRONG;
			}
		}
	}
	catch(int error = 0){
		if(error != 0){
			cout<<char(7);
			bError = true;
		}
		fnGetDate(i);
	}
	if(bError == false)i=atoi(str.c_str());
}

void fnGetDate(char s[],int iLength=40)			//用于获得字符串s
{
	static char s_cTemp;
	for(short i=0; (s_cTemp=cin.get())!='\n' && i<iLength-1; i++)
	{
		s[i]=s_cTemp;
	}
	s[i]='\0';
	if(i==0)fnGetDate(s,iLength);
	else if(i==iLength-1 && s_cTemp!='\n')
	{
		while(cin.get()!='\n')NULL;
		cout<<"Too long!Please input again: ";
		fnGetDate(s,iLength);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -