gets.c

来自「guide and some example with visualC++」· C语言 代码 · 共 49 行

C
49
字号
#include <stdio.h>
#include <signal.h>

extern int ParseError;

void outbyte(int ch);
int inbyte(void);
char *ppcgets(char *s)
{
int i,j;
/*fflush(stdout);
fflush(stderr); */

for(i=0; i<1024; i++)
{
        j=inbyte();
	j=j&127;
	if(j<32 && j!=13 && j!=10 && j!=8 && j!=9 && j!=3) j=32;
	if(j==3) raise(SIGINT); /* control-C pressed */
        if(j==127 || j==8) 
	{ 
	  if(i>=1)
	  {
	    	i+=-2;
		outbyte(8); 
	    	outbyte(' '); 
	    	outbyte(8);
	  }
	  else 	i--;
	}
	else
	{
	  if(j!=13 && j!=10)
	  { 
	    s[i]=j; 
            outbyte(j); 
          }
	}
        if(j==13) { /* outbyte(j); */ break; }
}
/* outbyte(10); */
s[i]=0;
/* fflush(stdout);
fflush(stderr); */
puts("");
return(s);
}

⌨️ 快捷键说明

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