C提示用户按Enter键,一按后退出

时间:2018-10-14 03:05:03

标签: c input

我有一个C程序,作为该程序的一部分,我想提示用户“按Enter键继续”,但我一直遇到不得不两次按Enter键的麻烦。我想检测一个回车键。我看到了这篇帖子Reading enter key in a loop in C,并尝试了

gh-pages

但是这对我不起作用,仍然必须按两次Enter键,然后两次打印提示。所以我就尝试了

char prev = 0;

while(1)
{
    printf("Press enter to continue \n");
    char c = getchar();

    if(c == '\n' && prev == c)
    {
        break;
    }

    prev = c;
}

但这仍然使我在继续之前按两次Enter键,尽管我只得到一次提示,所以方向是正确的。有什么更好的建议吗?

3 个答案:

答案 0 :(得分:1)

代替:

while (1) {
    printf("press enter to continue \n");
    char prompt;
    prompt = getchar();
    if(prompt == 0x0A){
        break;
    }
}

您可以尝试(清空stdin

do
{
    printf("press enter to continue \n");
    int prompt = getchar();
} while( prompt != '\n' && prompt != EOF );

答案 1 :(得分:1)

您也可以尝试

char ch;
//infinite loop
while(1)
{
printf("Enter any character: ");
//read a single character
ch=fgetc(stdin);
if(ch==0x0A)
{
printf("ENTER KEY is pressed.\n");
break;
}
ch=getchar();
}

答案 2 :(得分:0)

您也可以尝试以下方法:

20,000 and 30,000