用C ++创建一个简单的文本编辑器

时间:2014-02-06 06:57:20

标签: c++

我在CS162课程中,本周的作业是创建一个非常非常简单的文本编辑器,提示用户输入一个段落,完成后输入#,然后程序将进行简单的编辑,如将任何句子开头的单词大写,并将诸如“teh”之类的常见错误改为“the”。现在,我总是难以开始使用这些东西;我确切地知道我将如何纠正错误(让程序搜索拼写错误并用正确的拼写替换这些单词/使用.upper更改为大写)但是我无法开始简单地让用户输入一个段落并以#结尾。我会使用一个允许用户继续输入的循环,直到他们键入#?那会是什么样子?对不起,如果这看起来过于基本;我一直很难开始使用程序,因为我是一个非常早期的初学者。谢谢。

1 个答案:

答案 0 :(得分:0)

使用CONIO.H

您可以使用以下功能:

getch() - 从控制台读取一个没有缓冲区或回显的字符

kbhit()确定是否按下了键盘键。

获得你想要的东西。

编辑: 这是来自用户Falcom Momot,适用于Linux系统:

#include <unistd.h>
#include <termios.h>
char getch() {
    char buf = 0;
    struct termios old = {0};
    if (tcgetattr(0, &old) < 0)
            perror("tcsetattr()");
    old.c_lflag &= ~ICANON;
    old.c_lflag &= ~ECHO;
    old.c_cc[VMIN] = 1;
    old.c_cc[VTIME] = 0;
    if (tcsetattr(0, TCSANOW, &old) < 0)
            perror("tcsetattr ICANON");
    if (read(0, &buf, 1) < 0)
            perror ("read()");
    old.c_lflag |= ICANON;
    old.c_lflag |= ECHO;
    if (tcsetattr(0, TCSADRAIN, &old) < 0)
            perror ("tcsetattr ~ICANON");
    return (buf);

}