📄 getline.c
字号:
/*------------------------------------------------------------------------------
GETLINE.C: Line Edited Character Input
Copyright 1995-1996 Keil Software, Inc.
------------------------------------------------------------------------------*/
#include <stdio.h>
#include "getline.h" /* global project definition file */
/***************/
/* Line Editor */
/***************/
void getline(uchar* line, uchar n)
{
uchar cnt = 0;
uchar c;
do {
if ((c = _getkey()) == CR)
c = LF; /* read character */
if (c == BACKSPACE || c == DEL) { /* process backspace */
if (cnt != 0) {
cnt--; /* decrement count */
line--; /* and line pointer */
putchar(BACKSPACE); /* echo backspace */
putchar(' ');
putchar(BACKSPACE);
}
} else if (c != CNTLQ && c != CNTLS) { /* ignore Control S/Q */
putchar((char) (*line = c)); /* echo and store character */
line++; /* increment line pointer */
cnt++; /* and count */
}
} while (cnt < n - 1 && c != LF && c != ESCAPE); /* check limit and line feed */
*line = 0; /* mark end of string */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -