功能要求:将输入的字符保存在栈中进行缓存,当输入退格符#时,删除前一个字符;当输入换行符@时,栈中保存的字符输出,并清空栈;当输入全文终止符$时,销毁栈,行编辑程序终止运行。
实现:
- Status LineEdit(void)
- {
- SqStack S;
- InitStack(S,1000);
- char c;
- cin>>c;
- while(c != '$'){ //'$'为全文终止符
- while( (c != '$') && (c != '@') ){//'@'为换行符
- switch(c){
- case '#': //'#'为退格符
- Pop(S,c);
- break;
- default:
- Push(S,c);
- }
- cin>>c;
- }
- StackTraverse(S,output);
- ClearStack(S);
- cin>>c;
- }
- DestroyStack(S);
- return OK;
- }