如何在linux下c语言中不输入回车读取一个字符

[复制链接]
查看11 | 回复1 | 2010-3-17 10:55:15 | 显示全部楼层 |阅读模式
我的例程展示了如何不回车读一个字符。其实就是模拟经常看到的让用户输入 Y or N 的小程序。#include #include #include #include int main(){ char ch; struct termios old_term; struct termios cur_term; int ret ; tcgetattr(STDIN_FILENO, &old_term); memcpy(&cur_term, &old_term, sizeof(cur_term)); cur_term.c_lflag &= ~(ICANON); cur_term.c_cc[VMIN] = 1; cur_term.c_cc[VTIME] = 0; ret = tcsetattr(STDIN_FILENO, TCSANOW, &cur_term); if (ret < 0) {printf("Can't set\n");return 1; } printf("Are you OK? [Y/n] "); fflush(stdout); ret = read(STDIN_FILENO, &ch, 1); if (ret <= 0) {printf("Error\n"); } else {if (ch == 'y' || ch == 'Y'){ printf("\nYour choice is YES\n");}else if (ch == '\n'){ printf("You make no choice, default to YES\n");}else if (ch == 'n' || ch == 'N'){ printf("\nYour choice is NO\n");}else{ printf("\nInvalid choice\n");} } tcsetattr(STDIN_FILENO, TCSANOW, &old_term); return 0;}
回复

使用道具 举报

千问 | 2010-3-17 10:55:15 | 显示全部楼层
man tcsetattr
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行