我想检测在按下enter之前用户是否输入了一个字符

时间:2016-02-07 15:43:20

标签: c++ detect enter

我正在创建一个文本编辑器,这是它的代码:

#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <conio.h>

int main()
{
    system("cls"); system("COLOR F0");
    std::string input;
    static int lineNo=0;
    while(true)
    {
        lineNo+=1;
        std::cout << lineNo << "\t";
        input=="{" ? std::cout << "\t" : std::cout << "";
        input=="(" ? std::cout << "\t" : std::cout << "";
        input=="[" ? std::cout << "\t" : std::cout << "";
        std::getline(std::cin, input);
    }
    return 0;
}

我想为括号创建一个自动完成工具,在打开括号后立即进入右括号。请帮助我,因为我只是一个初学者。

2 个答案:

答案 0 :(得分:0)

您可以使用conio.h库中的getch()函数来扫描单个字符。您可以声明一个字符变量并扫描这样的大括号。

char in;
in=getch();
if(in=="{")
{
 //Write your code according to your uses.
}

答案 1 :(得分:0)

std::cin是您计划的标准输入。它(通常)不代表用户的键盘&#34;甚至&#34;输入终端&#34;或类似的东西。你如何从cin获取东西取决于你的标准输入的写入方式,这通常不会逐个字符地发生。通常,您的终端仅在换行后(用户按下回车键)之后将数据发送到程序的标准输入,在这种情况下,您无法事先通过cin获取该数据

对于您所描述的内容,您需要使用(如Joachim Pileborg所指出的)特定于平台的功能,例如Windows上的PeekConsoleInput。您可能还会发现GetAsyncKeyState有用。