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

📄 rdstr.c

📁 unix环境下c语言屏幕编程开发
💻 C
字号:
/******************************************* *					   * *	在x列y行处读一长length的字符串	   * *	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     * *					   * *	遇回车结束,长度放在length中.	   * *					   * *******************************************/#include "../inc/screen.h" void wstrcpy(s1,s2,n)char	*s1,*s2;int	n;{	int	i,j;	for(i = 0; i < n; i++)		s2[i] = SP;	s2[i] = NUL;	j = strlen(s1);	if(j > n)		j = n;	for(i = 0; i < j; i++)		s2[i] = s1[i];}void wstrcpyx(s1,s2,n)char	*s1,*s2;int	n;{	int	i;	for(i = 0; i < n; i++)		s2[i] = s1[i];}clipped(str1,str2)char	*str1,*str2;{	int	slen,i;	slen = strlen(str1);	while(str1[--slen] == SP)		;	if(slen > 79)		slen = 79;	for(i = 0; i <= slen; i++)		str2[i] = str1[i];	str2[i] = NUL;	return(i);}wlen(str)char	*str;{	int	slen;	slen = strlen(str);	while(str[--slen] == SP)		;	return(slen + 1);}strgrep(str,pattern,length)char	*str,*pattern;int	length;{	int	nn;	nn = strlen(str);	if(nn < length)		length = nn;	nn = strlen(pattern);	if(nn < length)		length = nn;	for(nn = 0; nn < length; nn++)	{		if(str[nn] != pattern[nn])			return(FALSE);	}	return(TRUE);} rdstr(x,y,string,length)int 	x,y,length;char	*string;{	int 	i;	char	str[81];	unsigned char	ch;	if(x < 0 || x > 79-length || y < 0 || y > 24 || length < 1 || length>80)		return(ERR);	i = 0;	for(i = 0; i < length; i++)	{		str[i] = BLANK;	}	str[length] = NUL;	i = 0;	scp(x,y);	do{		ch = wgetch();		switch(ch)		{			case BS:				if(i > 0)				{					i--;					str[i] = BLANK;					scp(x + i,y);					putchar(BLANK);					scp(x + i,y);				}				else					beep(1);				break;			case TAB:				return(ABORT);			case ESC:				return(BKABORT);                        case AC_UPPER:                                return(UPPER);                        case AC_DOWN:                                return(DOWN);                        case AC_LEFT:                                return(LEFT);                        case AC_RIGHT:                                return(RIGHT);                        case AC_HOME:                                return(HOME);			default:				if(ch == LF)					;				else  if(ch < BLANK && ch >= NUL)					beep(1);				else  if ( i < length )				{					str[i] = ( char ) ch;					i++;					putchar(ch);				}				else					beep(1);		}	}while(ch != CR && ch != LF);	if(i)		wstrcpy(str,string,length);	else		i=QUIT;	return(i);}

⌨️ 快捷键说明

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