2014-10-18 104 views
2

有沒有讓我升起的角色?如何移動到C++中的上一行?

我想打印:

******** 
*  * 
*  * 
*  * 
*  * 
******** 

我剛剛打印此:

done

我怎樣才能完成這個數字?

我正在寫一個Windows控制檯應用程序。

+1

也許取決於您的終端或其他輸出設備/軟件。 – Deduplicator 2014-10-18 17:19:55

+1

@StefanoSanfilippo這不是問題的答案。謝謝。 – 2014-10-18 17:25:49

+0

查看[Curses](https://en.wikipedia.org/wiki/Curses_(programming_library))或[Windows Console API](http://msdn.microsoft.com/zh-cn/library/windows/)桌面/ ms682073(v = vs.85)的.aspx)。像Vim和Nethack這樣的程序依賴於這些能力來了解屏幕的大小並進行任意的光標控制。但請注意,一旦你開始使用這種功能,你的程序就失去了普遍性和可移植性;它會干擾重定向輸出到文件/等。如果可以的話,堅持ASCII和Unicode輸出是最好的。 – HostileFork 2014-10-18 17:28:46

回答

4

發佈此答案後,問題發生了很大變化。


向上移動一行與C++沒有任何關係,但具有輸出設備的功能以及它期望如何編碼這樣的動作。

在ASCII,C++標準庫或(我記得)例如在ANSI轉義序列中。

實現該效果的一種方式是在內部緩衝區中產生輸出,例如,在C++中輸入vector<string>,然後在所有輸出生成後輸出緩衝區內容。

+0

哦,[有](https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes)爲此的轉義代碼。它是'\ 033 [1F'。 – 5gon12eder 2014-10-18 17:25:19

+1

@ 5gon12eder我也讀過這個話題,但它沒有幫助我。它打印如下:'< - [1F'。我應該包括哪些圖書館?我使用'iostream'和'string'。謝謝。 – 2014-10-18 17:30:48

+0

@coni你應該使用「單向」乾杯和hth。 - Alf提到。但是如果你想要一個終端控制庫:看看(n)詛咒。如果轉義碼不起作用,則與您的C++代碼無關,但與您的終端(模擬器)無關,如上述答案中所述。 – 5gon12eder 2014-10-18 17:32:07

相關問題