如果我得到任何字符,请退出程序
Exit program if i get any char
我正在创建一个程序,如果我按下任何键,我想退出该程序。到目前为止,我只能在按下返回时执行此操作,它会发生,因为 getch 需要按下返回。
法典:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
static void * breakonret(void *instance);
int main(){
pthread_t mthread;
pthread_create(&mthread, NULL, breakonret, NULL);
while(1){
printf("Data on screenn");
sleep(1);
}
}
static void * breakonret(void *instance){
getchar();
exit(0);
}
(我将问题从getch
重新标记为getchar
,因为它们是两个不同的东西)。
正如您所注意到的,getchar
等待返回后再返回。如果您希望它在按下任何键后立即返回,则需要使用其他函数。在Windows上,有一个名为getch()
的内置函数可以执行此操作,该函数在<conio.h>
中定义。在POSIX平台上(例如Linux,OS X),没有内置getch()
,但您可以像这样编写自己的版本(从 http://cboard.cprogramming.com/faq-board/27714-faq-there-getch-conio-equivalent-linux-unix.html 开始):
#include <termios.h>
int getch( )
{
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
相关文章:
- 为什么异常不退出程序?
- 虽然循环在使用回车键时不退出程序
- 如果 I/O read() 处于阻塞阶段,如何使用 Ctrl+C 退出 C++ 程序?
- 捕获异常后如何退出程序执行
- 在C++中使用exit()退出程序有问题吗
- 从函数打印 CLI 帮助消息后,我应该如何干净地退出 C++ 程序?
- 如何实现否定用户输入退出程序和打印列表?
- gdb 退出:程序接收信号 SIGILL,使用 gcc / intel_mkl / gfortran -mavx 编译的
- 试图调节我的 do-while 以停止在终端中退出程序.菜单不会根据需要循环使用当前语句
- 如何在C 中按ENTER/返回键时退出程序循环
- 退出程序,默认开关
- 我想让程序保持运行,直到用户输入 n 退出程序
- 我找不到第一个用户输入后立即退出程序的原因
- 安全地退出程序 Win32 C++从分离的 std::线程
- 如何使用QCloseEvent退出程序
- 在主之前退出程序是明确的行为吗?
- C++键盘挂钩-退出程序,但也防止密钥在其他地方被处理
- 在类中运行析构函数时退出程序
- 如果我得到任何字符,请退出程序
- 当用户输入一个特殊字符时如何退出程序