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