首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
linux getch()实现
编辑
代码正文
双击正文可选择全部
1[代码][c]ctrl+c不会中断程序
尝试一下
#include <stdio.h> #include <ctype.h> #include <termio.h> char getch(void); // 包含isalpha()的函数原型 int main(void){ char ch; while ((ch = getch()) != 'a'){ if (isalpha(ch)) // 如果是一个字符, putchar(ch + 1); // 显示该字符的下一个字符 else // 否则, putchar(ch); // 原样显示 } putchar(ch); // 显示换行符 return 0; } char getch(void) { struct termios tm, tm_old; int fd = 0, ch; if (tcgetattr(fd, &tm) < 0) {//保存现在的终端设置 return -1; } tm_old = tm; cfmakeraw(&tm);//更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理 if (tcsetattr(fd, TCSANOW, &tm) < 0) {//设置上更改之后的设置 return -1; } ch = getchar(); if (tcsetattr(fd, TCSANOW, &tm_old) < 0) {//更改设置为最初的样子 return -1; } return ch; }
文明上网理性发言,请遵守新闻评论服务协议
0 条评论
发布评论
全部评论
最新
/
最热
暂无评论
加载更多
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 3 个查询,用时 0.0020449161529541 秒,PHP脚本用时 0.004456 秒,占用内存 0.502 MB,Gzip 已启用