再来看一个行编辑程序的示例,用户在终端输入字符,完成后保存用户的数据区, 因为在输入的过程中可能出错,需要修改,所以不可能每输入一个字符就存入数据区。比较好的做法是先在内存里开一个输入的缓冲区,当用户输入完成一行后,再存入数据区。在行内可以修改。例如,当用户发现刚输入的一个字符是错的之后,可以再输入一个'#',表示前一个字符是错的,如果发现当前行输入的错误太多,可以输入一个退行符'@',表示当前行都无效,举个例子:
whli#ilr#e(s#*s)
outcha@putchar(*s=#++)
实际有效的字符是这样的:
while(*s)

该博客介绍了如何利用栈的数据结构实现一个简单的编辑器。通过解析输入的字符序列,当遇到'#'时弹出栈顶元素,遇到'@'时清空栈。核心思路是将输入缓冲区视为栈,并通过字符控制栈的操作。
最低0.47元/天 解锁文章
2193

被折叠的 条评论
为什么被折叠?



