2011-01-28 56 views
1

我希望能夠將兩個文本流引導到具有垂直分割視圖的單個控制檯窗口。理想的解決方案是如果我可以簡單地寫入兩個不同的std :: ostream對象。如何創建分屏控制檯輸出?

我需要它的原因是比較兩個不同版本的程序的輸出。我知道有簡單的解決方法,如重定向到文件和使用差異程序來查看差異。但是這並不重要,因爲這個項目主要是爲了好玩。然而,我不知道如何實現這一目標。假設左半部分在右半部分之前寫了20行輸出。如何將光標向上移動以寫入右半部分?

任何人都可以給我一些關於如何入門的指針嗎?這可以在純C++中完成還是需要特定於平臺的功能?

+0

我認爲你會更好地說「C++語言可以單獨做這件事,還是我需要某種類型的庫」。平臺究竟是什麼意思?一個C++編譯器的版本?附帶一些特定編譯器的庫? – 2011-01-28 18:37:46

回答

6

這不能單獨使用「純C++」來完成。您將需要額外的,潛在的平臺特定的庫來實現您所期望的行爲。例如,查看ncurses庫。

+0

ncurses是一個跨平臺的庫,但是隨着問題問你是否可以在C++「only」中做到這一點,也許更好的方式來說這是「你需要某種庫,C++語言本身不提供控制檯功能,終端仿真等等「。 – 2011-01-28 18:36:55

1

Jlib可能會有所幫助。

一個能夠着色輸入和輸出的控制檯庫。包括用戶可定義的菜單,ASCII字符窗口,保存/恢復字符的屏幕,256控制檯顏色組合和智能着色。

2

你也許可以在olde終端應用程序中找到一些用於文本聊天的開放源代碼,這與橫向拆分完成相同。

回到足夠遠的地方,你會發現使用ansi escape sequences

寫一些新的ncurses可能是要走的路。

另一方面,我認爲從烏龜的差異/合併工具是非常好的,從使用它真的表明,簡單地把代碼放在一起可能不足以做出有用的眼球比較。你真的從顏色和額外增值的計算機中找到你的差異。