[問題] linux C 如何不按enter輸入字元?
看板C_and_CPP (C/C++)作者liymars (從數學發現心世界)時間14年前 (2011/09/12 23:17)推噓2(2推 0噓 10→)留言12則, 7人參與討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
做出 getch() 不需要輸入enter的動作
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
int readch ()
{
unsigned char c;
read (fileno(stderr), &c, 1);
return (c);
}
int main(void)
{
char c;
puts("請輸入..Y/N ");
while(1)
{
c=readch();
if(c=='y')
return 0;
if(c=='n')
return 0;
}
return 0;
}
補充說明(Supplement):
一開始找到curses.h這個有getch(),不過看起來不是我以前認識的getch()
後來參考了more原碼,不過more的作法好像是先把緩衝塞滿然後讓它溢位,
抓最後一個值回傳來達到不按enter的動作..有沒有更簡單的作法?
能像getch()函式一樣不用按enter呢?
還有puts如果改成printf執行起來不會先跑出 "請輸入..Y/N "這行?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.19.203
→
09/13 00:21, , 1F
09/13 00:21, 1F
→
09/13 00:32, , 2F
09/13 00:32, 2F
→
09/13 00:34, , 3F
09/13 00:34, 3F
→
09/13 02:05, , 4F
09/13 02:05, 4F
→
09/13 02:35, , 5F
09/13 02:35, 5F
→
09/13 06:21, , 6F
09/13 06:21, 6F
→
09/13 09:16, , 7F
09/13 09:16, 7F
推
09/13 10:05, , 8F
09/13 10:05, 8F
→
09/13 12:29, , 9F
09/13 12:29, 9F
→
09/13 12:44, , 10F
09/13 12:44, 10F
推
09/13 13:38, , 11F
09/13 13:38, 11F
→
09/13 13:40, , 12F
09/13 13:40, 12F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章