當前位置:編程學習大全網 - 編程軟體 - 如何在linux下c語言中不輸入回車讀取壹個字符

如何在linux下c語言中不輸入回車讀取壹個字符

我的例程展示了如何不回車讀壹個字符。其實就是模擬經常看到的讓用戶輸入 Y or N 的小程序。

#include <termios.h>

#include <stdio.h>

#include <unistd.h>

#include <string.h>

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;

}

  • 上一篇:我是經濟學專業的,畢業後想進證券和銀行選擇計算機二級的哪種比較好,比如vb,vf,c語言, c++等
  • 下一篇:怎麽學編程
  • copyright 2024編程學習大全網