Linux從控制台一次讀取乙個字元,無需等待回車鍵

2021-07-25 22:52:56 字數 995 閱讀 6894

原文:

讀取字元嘛,可以使用getchar(),getch()等等函式,但它們都需要等待回車鍵以結束輸入,而不是按下鍵盤時立即響應,看上去不那麼「實時」。

如果是在windows平台下的話,可以使用conio.h下的_getch()函式,注意是以下劃線開頭的,msdn鏈結在這裡。

在linux下貌似沒有找到類似的函式... 不過可以使用乙個比較bt的方式來實現:更改控制台設定。

#include 

<

termios.h

>

static

struct

termios oldt;

//restore terminal settings

void

restore_terminal_settings(

void)//

make terminal read 1 char at a time

void

disable_terminal_return(

void)

下面是乙個demo程式,複製貼上試用吧:

#include 

<

stdio.h

>

#include 

<

stdlib.h

>

#include 

<

termios.h

>

static

struct

termios oldt;

//restore terminal settings

void

restore_terminal_settings(

void)//

make terminal read 1 char at a time

void

disable_terminal_return(

void

)int

main()

return0;

}

為MFC工程新增乙個控制台

在mfc工程裡有時想要輸出一些資料,可以用trace之類的,也可以寫日誌,還可以為工程新增乙個控制台直接輸出到控制台裡,這樣可以很方便的查閱輸出的資訊。效果就是這樣的,在程式生成時建立乙個控制台,在程式關閉時會隨之銷毀,發布程式時只要把對應的 注釋掉就好了。具體的操作是在你想要建立控制台的類的建立方...

Java 從控制台讀入乙個動態字串陣列

要求描述 今天刷題的時候,需要從控制台讀入乙個int型的動態陣列到vector中儲存,如輸入1 2 3 4 5。想都沒想,於是便有了下面的 scanner sc new scanner system.in vectorlist new vector while sc.hasnextint for i...

為你的程式建立乙個控制台

經常看到一些程式在執行的時候有乙個windows控制台,感覺非常cool。實際上有的時候幫助你監視系統執行是很方便的,那麼怎麼樣建立乙個控制台呢?實際上windows為你提供了一系列的api來完成這個功能,例如 readconsole,writeconsole等,具體參見msdn。下面我們用一段 來...