让我说我在无限循环中,我希望用户以整数形式输入数据。然后数据将被传递到另一个函数用于其他目的,此过程将继续,直到用户在数据位置输入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值作为数据输入它退出循环,我不想发生?
答案 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;
}
希望这有帮助。