2012-08-31 75 views
1

使用C++作爲跨平臺控制檯應用程序,有什麼方法可以實現靜態和動態更改的顯示,而不是在前一個輸出下打印的輸出?即對於一個簡單的棋盤遊戲,而不是每輪都重新打印棋盤,更新一個輸出。用於跨平臺的C++控制檯顯示

編輯:AFAIK,unicode並非完全必要,我只使用出現在標準EN-GB鍵盤上的字符。

我會看看NCURSES,雖然我想知道是否有什麼可以幫助我實現這一目標的C++標準。如果你喜歡叫我無知,但我只是想知道。

+3

你可以看看[ncurses](http://en.wikipedia.org/wiki/Ncurses)。我認爲有Windows的庫。 –

+2

問題1:是否需要unicode支持? –

回答

3

我認爲NCURSES是你在找什麼。 ConsoleUI的終端封裝,它是跨平臺的。它允許您寫入虛擬屏幕緩衝區,並控制刷新的時間和方式。它會對該緩衝區進行內部簿記,並只會刷新已更改的字符。 Curses的設計在連接速度非常重要的日子裏進行,因此終端刷新操作以智能方式完成。

在SO有一個ncurses標籤,所以你會在這裏找到很多關於堅韌細節的信息。

+0

通過注意到您必須在Windows上使用[PDCurses](http://pdcurses.sourceforge.net/)或類似軟件來修正此問題。它的工作原理與ncurses幾乎完全一樣,所以大部分鏈接器參數都必須更改。 – 2012-08-31 13:45:19

+0

那麼,不會有entirley跨平臺的實現?是不同平臺使用獨立庫的唯一方法嗎? – Joe

+0

根據您的要求,您可以在Windows下使用cygwin,除非您確實需要使用正版Windows控制檯。 – count0