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

📄 comment.cpp

📁 这是unix下的图形库,是文本图形库 非常好
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	mvwaddstr(win,y,x,tmpstr);	wmove(win,y,x);	do {		getyx(win, y1, x1);		if (x1 <= x)			lflag = 1;		else			lflag = 0;		if (x1 >= x + leng - 1)			rflag = 1;		else			rflag = 0;		j = wgetch(win);		if (j > 31 && j < 256 && j != 127) {			if ( funstatus(type, (char)j) ) {				beep();				continue;			}			if (insflag)				inschstrover( (char )j, cur_posi , s);			else				covchstr( (char)j , cur_posi , s );			modiflag = 1;			if (rflag == 0) {				cur_posi++;				wmove(win, y1, x1+1 );			}			else wmove(win,y1,x1);		} else			switch (j) {			case 1:				insflag = !insflag;				break;			case 8:				if (lflag == 1)  wmove(win,y,x);				else {					bkspchstr(s, cur_posi);					cur_posi--;					wmove(win, y1, x1 - 1);				}				modiflag = 1;				break;			case 9:				showmessage(helpy, helpx, helpstr);				touchwin(win);				wrefresh(win);				break;			case 127:				delchstr(s, cur_posi);				wmove(win, y1, x1);				modiflag = 1;				break;			case 260:				if (lflag == 0) {					cur_posi--;					wmove(win, y1, x1 - 1);				}				else endloop = 1;				break;			case 261:				if (rflag == 0){					cur_posi++;					wmove(win, y1, x1 + 1);				}				else	endloop = 1;				break;			default:				endloop = 1;			}	} while (endloop == 0);	if (modiflag)		j = -j;	return j;}/*以密码的形式输入字符串*//*#define geteditpass(a,b,c,d,e) _geteditpass(a,b,c,d,e,0,0,"")*/int	_geteditpass(WINDOW *win, int y, int x, int len, char *value, int hlpy, int hlpx, char *hlp){	/***			void inschstr(char,int,char *);		    void _showtmessage(int,int,char *,char *,int);			void delchstr(char *,int);			***/	int	modi = 0, key, ins = 0, pos = 0, i, rlen, eflag = 1;	keypad(win, 1);	while (eflag == 1) {		rlen = strlen(value);		wmove(win, y, x);		for (i = 0; i < len; i++, waddch(win, '*'));		wmove(win, y, pos + x);		wrefresh(win);		key = wgetch(win);		if ((key > 31) && (key < 256))			if (ins)				if (rlen < len) {					inschstr(key, pos, value);					modi = 1;					pos++;				}				else					beep();			else if (pos < len) {				value[pos] = key;				pos++;				modi = 1;			}			else				beep();		else			switch (key) {				/*										  *	case  3:										  *	case  4: 										  *	case 10:										  *	case 16:										  *	case 25:										  *	case KEY_UP:										  *	case KEY_DOWN:										  *		eflag=0;										  *		break;										  */			case 9:				if (strlen(hlp) > 0) {					showtmessage(hlpy, hlpx, "[提  示]", (char *)hlp);					touchwin(win);					wrefresh(win);				}				break;			case 1:				ins = !ins;				break;			case 24:				delchstr(value, pos);				modi = 1;				break;			case 260:				if (pos > 0)					pos--;				else					eflag = 0;				break;			case 261:				if (pos < rlen)					pos++;				else {					beep();					eflag = 0;				}				break;			case 8:				if (pos > 0) {					pos--;					delchstr(value, pos);					modi = 1;				} else					beep();				break;			default:				eflag = 0;				break;			}	}	if (modi)		key = -key;	return(key);}/*输入数字字符串*//*#define getnumstr(a,b,c,d,e) _getnumstr(a,b,c,d,e,0,0,"")*/int	_getnumstr(WINDOW *win, int y, int x, int len, char *value, int hlpy, int hlpx, char *hlp){	/***			void inschstr(char,int,char *);		    void _showtmessage(int,int,char *,char *,int);			void delchstr(char *,int);			***/	int	modi = 0, key, ins = 0, pos = 0, i, rlen, eflag = 1;	keypad(win, 1);	while (eflag == 1) {		rlen = strlen(value);		mvwaddstr(win, y, x, value);		for (i = rlen; i < len; i++, waddch(win, ' '), value[i] = 0);		wmove(win, y, pos + x);		wrefresh(win);		key = wgetch(win);		if ((key >= '0') && (key <= '9'))			if (ins)				if (rlen < len) {					inschstr(key, pos, value);					modi = 1;					pos++;				}				else					beep();			else if (pos < len) {				value[pos] = key;				pos++;				modi = 1;			}			else				beep();		else			switch (key) {			case 3:			case 4:			case 10:			case 16:			case 25:			case 259:			case 258:				eflag = 0;				break;			case 9:				if (strlen(hlp) > 0) {					showtmessage(hlpy, hlpx, "[提  示]", (char *)hlp);					touchwin(win);				}				break;			case 1:				ins = !ins;				break;			case 24:				delchstr(value, pos);				modi = 1;				break;			case 260:				if (pos > 0)					pos--;				else					eflag = 0;				break;			case 261:				if (pos < rlen)					pos++;				else {					beep();					eflag = 0;				}				break;			case 8:				if (pos > 0) {					pos--;					delchstr(value, pos);					modi = 1;				} else					beep();				break;			default:				beep();				break;			}	}	if (modi)		key = -key;	return(key);}/*产生随机文件名*/void	randstr(char *str2, char *str){	short	pid;	pid = getpid();	sprintf(str, "%s%d", str2, pid);}/*把"\DD"(其中DD为一个两位的十进制数)字符串形式转化为ASCII码形式*/void	Si_toasc(char *str){	char	s[256] = "", str1[256] = "", str2[4] = "", num[3];	int	i, j, number = 0;	strcpy(s, str);	for (i = 0, j = 0; s[i] != '\0'; i++, j++) {		if (s[i] == '\\') {			num[0] = s[i+1];			num[1] = s[i+2];			num[3] = '\0';			number = atoi(num);			sprintf(str2, "%c", (char)number);			str2[strlen(str2)] = '\0';			strcat(str1, str2);			i += 2;		} else			str1[j] = s[i];	}	str1[strlen(str1)] = '\0';	for (i = 0; str1[i] != '\0'; i++)		str[i] = str1[i];	str[i] = '\0';}/*循环截取以ch为间隔的每段字符串*/char	*xiastrtok(char *s1, char ch, char *s2){	while (1) {		if ((*s1) != ch && (*s1) != '\0' && (*s1) != '\n') {			(*s2) = (*s1);			s1++;			s2++;		} else {			if ((*s1) != '\0')				s1++;			(*s2) = '\0';			return s1;		}	}}void	int_SDATE(int i, char *s){	s[0] = '\0';	if (i < 100) {		switch (i) {		case 1:			strcpy(s, "零壹");			break;		case 2:			strcpy(s, "零贰");			break;		case 3:			strcpy(s, "零叁");			break;		case 4:			strcpy(s, "零肆");			break;		case 5:			strcpy(s, "零伍");			break;		case 6:			strcpy(s, "零陆");			break;		case 7:			strcpy(s, "零柒");			break;		case 8:			strcpy(s, "零捌");			break;		case 9:			strcpy(s, "零玖");			break;		case 10:			strcpy(s, "壹拾");			break;		case 11:			strcpy(s, "壹拾壹");			break;		case 12:			strcpy(s, "壹拾贰");			break;		case 13:			strcpy(s, "壹拾叁");			break;		case 14:			strcpy(s, "壹拾肆");			break;		case 15:			strcpy(s, "壹拾伍");			break;		case 16:			strcpy(s, "壹拾陆");			break;		case 17:			strcpy(s, "壹拾柒");			break;		case 18:			strcpy(s, "壹拾捌");			break;		case 19:			strcpy(s, "壹拾玖");			break;		case 20:			strcpy(s, "贰拾");			break;		case 21:			strcpy(s, "贰拾壹");			break;		case 22:			strcpy(s, "贰拾贰");			break;		case 23:			strcpy(s, "贰拾叁");			break;		case 24:			strcpy(s, "贰拾肆");			break;		case 25:			strcpy(s, "贰拾伍");			break;		case 26:			strcpy(s, "贰拾陆");			break;		case 27:			strcpy(s, "贰拾柒");			break;		case 28:			strcpy(s, "贰拾捌");			break;		case 29:			strcpy(s, "贰拾玖");			break;		case 30:			strcpy(s, "叁拾");			break;		case 31:			strcpy(s, "叁拾壹");			break;		default:			strcpy(s, "error!");		}	} else {		int	j;		char	str[5] = "";		sprintf(str, "%d", i);		for (j = 0; j < 4; j++) {			switch (str[j]) {			case '0':				strcat(s, "零");				break;			case '1':				strcat(s, "壹");				break;			case '2':				strcat(s, "贰");				break;			case '3':				strcat(s, "叁");				break;			case '4':				strcat(s, "肆");				break;			case '5':				strcat(s, "伍");				break;			case '6':				strcat(s, "陆");				break;			case '7':				strcat(s, "柒");				break;			case '8':				strcat(s, "捌");				break;			case '9':				strcat(s, "玖");				break;			default :				strcat(s, "error!");			}		}	}}/* *把日期数字转化为大小写字符串.其中bz为0,则为小写;否则,为大写 *返回值<0,则程序出错; *      =0,则转化为小写; *      >0,则转化为大写 */int	rq_min_max(char	*str, char *year, char *month, char *day, int bz){	/***			void	int_SDATE(int, char *);			int 	myrdatestr(long,char *);			***/	int	i, j, numy = 0, numm = 0, numd = 0;	for (i = 0, j = 0; i < 4; i++, j++)		year[j] = str[i];	year[j] = '\0';	for (i = 5, j = 0; i < 7; i++, j++)		month[j] = str[i];	month[j] = '\0';	for (i = 8, j = 0; i < 10; i++, j++)		day[j] = str[i];	day[j] = '\0';	if (!bz)		return 0;	numy = atoi(year);	numm = atoi(month);	numd = atoi(day);	int_SDATE(numy, year);	int_SDATE(numm, month);	int_SDATE(numd, day);	return 1;}/*判断参数是否为闰年,返回值为零则代表是,为壹则代表否*/int	Isleapyear(int year){	if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))		return 0;	else		return 1;}/* *判断year,mon,day 是否合法 *返回值<0,则表明年月日不合法 *      =0,则表明年月日合法 */int	Isdate(int year, int mon, int day){	int	Isleapyear(int);	int	mbase;	if (year < 1899)		return - 1;	switch (mon) {	case 1:	case 3:	case 5:	case 7:	case 8:	case 10:	case 12:		mbase = 31;		break;	case 2:		if (!Isleapyear(year))			mbase = 29;		else			mbase = 28;		break;	case 4:	case 6:	case 9:	case 11:		mbase = 30;		break;	default:		return - 2;	}	if (day > mbase)		return - 3;	else		return 0;}/* *把日期形式的字符串转化为长整型数字 *返回值<0,则表明转化有错 *      =0,则表明转化正确 */int	myrstrdate(char *rqchr, long *rqlong){	/***			int		Isdate(int, int, int);			int		Isleapyear(int);			***/	int	i, year, mon, day;	int	ts, mbase;	char	tmp[10];	if (strlen(rqchr) < 10)		return - 1;	rqchr[11] = 0;	strcpy(tmp, rqchr);	tmp[4] = 0;	year = atoi(tmp);	sprintf(tmp, &rqchr[5]);	tmp[2] = 0;	mon = atoi(tmp);	sprintf(tmp, &rqchr[8]);	tmp[2] = 0;	day = atoi(tmp);	if (Isdate(year, mon, day) != 0)		return - 2;	ts = 0;	for (i = 1900; i < year; i++)		if (!Isleapyear(i))			ts++;	for (i = 1; i < mon; i++) {		switch (i) {		case 1:		case 3:		case 5:		case 7:		case 8:		case 10:		case 12:			mbase = 31;			break;		case 2:			if (!Isleapyear(year))				mbase = 29;			else				mbase = 28;			break;		case 4:		case 6:		case 9:		case 11:			mbase = 30;			break;		}		ts = ts + mbase;	}	*rqlong = (year - 1900) * 365 + ts + day;	return 0;}/* *把长整型数字转化为日期形式的字符串 *返回值<0,则表明转化有错 *      =0,则表明转化正确 */int	myrdatestr(long rqlong, char *rqchr){	/*int	Isleapyear(int);*/	int	year, mon, day;	int	i, ybase, mbase;	if (rqlong < 0)		return - 1;	if (rqlong == 0) {		strcpy(rqchr, "1899/12/31");		return 0;	}	year = 1900;	while (1) {		if (Isleapyear(year))			ybase = 366;		else			ybase = 365;		if (rqlong > ybase ) {			rqlong = rqlong - ybase;			year++;		} else			break;	}	for (mon = 1; mon < 12; mon++) {		switch (mon) {		case 1:		case 3:		case 5:

⌨️ 快捷键说明

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