📄 getline.c
字号:
/******************************************************************************/
/* GETLINE.C: 字符输入行编辑器 */
/******************************************************************************/
#include <stdio.h>
#define CNTLQ 0x11
#define CNTLS 0x13
#define DEL 0x7F
#define BACKSPACE 0x08
#define CR 0x0D
#define LF 0x0A
/***************/
/* 行编辑器 */
/***************/
void getline (char idata *line, unsigned char n) {
unsigned char cnt = 0;
char c;
do {
if ((c = _getkey ()) == CR) c = LF; /* 读入字符 */
if (c == BACKSPACE || c == DEL) { /* 处理BACKSPACE键 */
if (cnt != 0) {
cnt--;
line--;
putchar (0x08); /* 回显backspace */
putchar (' ');
putchar (0x08);
}
}
else if (c != CNTLQ && c != CNTLS) { /* 忽略CNTL_Q 和CNTL_S */
putchar (*line = c); /* 回显并保存字符 */
line++;
cnt++;
}
} while (cnt < n - 1 && c != LF);
*line = 0; /* 字符串结尾标志 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -