📄 getline.lst
字号:
C51 COMPILER V7.00 GETLINE 01/04/2003 15:10:30 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE GETLINE
OBJECT MODULE PLACED IN Getline.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Getline.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /******************************************************************************/
2 /* */
3 /* GETLINE.C: Line Edited Character Input */
4 /* */
5 /******************************************************************************/
6
7 #include <stdio.h>
8
9 #define CNTLQ 0x11
10 #define CNTLS 0x13
11 #define DEL 0x7F
12 #define BACKSPACE 0x08
13 #define CR 0x0D
14 #define LF 0x0A
15
16 /***************/
17 /* Line Editor */
18 /***************/
19 void getline (char idata *line, unsigned char n) {
20 1 unsigned char cnt = 0;
21 1 char c;
22 1
23 1 do {
24 2 if ((c = _getkey ()) == CR) c = LF; /* read character */
25 2 if (c == BACKSPACE || c == DEL) { /* process backspace */
26 3 if (cnt != 0) {
27 4 cnt--; /* decrement count */
28 4 line--; /* and line pointer */
29 4 putchar (0x08); /* echo backspace */
30 4 putchar (' ');
31 4 putchar (0x08);
32 4 }
33 3 }
34 2 else if (c != CNTLQ && c != CNTLS) { /* ignore Control S/Q */
35 3 putchar (*line = c); /* echo and store character */
36 3 line++; /* increment line pointer */
37 3 cnt++; /* and count */
38 3 }
39 2 } while (cnt < n - 1 && c != LF); /* check limit and line feed */
40 1 *line = 0; /* mark end of string */
41 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 101 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -