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

📄 getline.c

📁 这是一个远程温度计 MCU: AT89S52 温度传感器: DS18B20 晶振: 12MHz 使用串口连接,在PC端使用"超级终端"打开 设置如下: 波特率: 4800 数据
💻 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 + -