简单的文本行编辑程序——基于栈

来源:互联网 发布:网络四大名著紫川 编辑:程序博客网 时间:2024/05/18 16:17

一个简单的行编辑程序的功能是:接受从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入是,不能保障不出差错,因此,若在编辑程序中,“每接收一个字符立即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行数据,然后逐行存入用户数据区。允许用户输入出现差错,并在发现有误是可以及时更正。

比如当用户发现上一个字符是错的可以输入#表示上一个字符无效,如果发现一行的差错比较多是可以输入@表示清空这一行

void LineEdit(){    stack<char> s;    stack<char> s1;    char ch = getchar();    while (EOF != ch)    {        while (EOF != ch && '\n' != ch)        {            switch (ch)            {            case '#':                s.pop();                break;            case '@':                while (!s.empty())                {                    s.pop();                }                break;            default:                s.push(ch);                break;            }            ch = getchar();        }        while (!s.empty())        {            s1.push(s.top());            s.pop();        }        while (!s1.empty())        {            cout << s1.top();            s1.pop();        }        cout << endl;        if (ch != EOF)            ch = getchar();    }}

这里写图片描述

0 0
原创粉丝点击