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

📄 getline.c

📁 这是《Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践》教材各章中列出的全部程序例子。
💻 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 + -