如果用户超过特定字符数,则更改行



我正在做一个作业,在其中我正在创建一个在主内存上工作的文本编辑器。 我不允许使用文件处理,也不允许使用字符串类字符串库或 CSTRING 库。现在我要实现的是,一行只包含 60 个字符,如果用户的输入超过 60 个字符,它应该自动移动到下一行,我还必须在用户输入时显示行号我的代码在这里

#include <iostream>
using namespace std;
int main()
{
    char***files=new char**[50];
    char**fileNames=new char*[50];
    int fileCount=0;
    while (true)
    {
        int selector=0;
        cout<<"MacMAds Notepad"<<endl<<endl;
        cout<<"Press 1. To Create a new file"<<endl;
        cout<<"Press 2. To View an existing file by giving file name"<<endl;
        cout<<"Press 3. To edit an existing file by giving its name"<<endl;
        cout<<"Press 4. To copy an existing file to a new file"<<endl;
        cout<<"Press 5. To delete an existing file by giving its name"<<endl;
        cout<<"Press 6. To view listof all files with the names"<<endl;
        cout<<"Press7. To Exit"
        cin>>selector;
        if (selector==7)
            break;
        if (selector==1)
        {
            cout<<"Please enter the name of file: ";
            cin>>fileNames[fileCount];
            int nLines=0;
            cout<<"Please enter the number of lines for "<<fileNames[fileCount]<<": ";
            cin>>nLines;
            files[fileCount]=new char*[nLines];
            for (int i=0;i<nLines;i++)
            {
                files[fileCount][i]=new char[61];
                cin.getline(files[fileCount][i],60)
            }
                    }
    }
    return 0;
}

现在我要实现的是,一行只包含 60 个字符,如果用户的输入超过 60 个字符,它应该自动移动到下一行

你不能使用来自std::cinstd::getline()的标准 c++ 缓冲输入来做到这一点,因为所有输入都需要使用 ENTER 键触发。

您需要拦截任何按键直接扫描键盘输入事件。这是特定于操作系统的功能,C++标准库未涵盖。

不过,有像ncurses这样的第三方库,允许您以大部分独立于平台的方式执行此操作。

不能限制用户通过标准 c++ 库输入的字符数。

相关内容

  • 没有找到相关文章

最新更新