通过将esc作为来自用户的输入来退出循环

时间:2016-03-22 16:12:20

标签: loops while-loop infinite-loop exit-code

让我说我在无限循环中,我希望用户以整数形式输入数据。然后数据将被传递到另一个函数用于其他目的,此过程将继续,直到用户在数据位置输入esc并且我希望循环在该点断开。我该怎么做?

 while(1)
 {
    printf("enter the data that need to entered\npress esc to exit\n");

    scanf("%d",&n);

    function(n);
 }

我尝试使用if-else,但如果我把esc的ascii值作为数据输入它退出循环,我不想发生?

1 个答案:

答案 0 :(得分:0)

正如 dingrite 在其他答案中写道:

您最好的选择是创建自定义" GetAsyncKeyState "函数将使用#IFDEF for windows和linux来选择合适的GetAsyncKeyState()或等效函数。

没有其他方法可以达到预期的效果,cin方法存在问题 - 例如应用程序必须成为焦点。

看看这个问题:C++: execute a while loop until a key is pressed e.g. Esc?

或者您可以尝试使用其他页面上的示例

#include <stdio.h>

int main (void)
{
    int c;

    while (1) {
        c = getchar();            // Get one character from the input
        if (c == 27) { break; }  // Exit the loop if we receive ESC
        putchar(c);               // Put the character to the output
    }

    return 0;
}

希望这有帮助。