2016-05-03 17 views
0

私はこのようになり、画面上のボックスを描画しようとしているのボックスを描画するためのコマンド:ANSI端末

┌───┐ 



└───┘ 

私は、ANSIがここにカーソルを移動するコマンドが見つかりました:

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

私のコードは次のようになります。

int main() 
{ 
    int boxsize = 5; 
    std::string bs = std::to_string(boxsize); 
    std::string up = "\033[<"+bs+">A"; 
    std::string down = "\033[<"+bs+">B"; 
    std::string back = "\033[<"+bs+">D"; 

    std::cout << "┌"; 
    for (int i = 0; i < boxsize-2; ++i) 
    { 
    std::cout << "─"; 
    std::cout << down; 
    std::cout << "─"; 
    std::cout << up; 
    } 
    std::cout << "┐"; 
    std::cout << down; 
    std::cout << "┘"; 
    std::cout << back; 
    std::cout << "└"; 
} 

そして、私の結果はこれです:

┌─5>B─5>A─5>B─5>A─5>B─5>A┐5>B┘5>D└ 

ANSIコマンドを間違って使用していますか、これは端末(yakuake)の問題ですか?これらの行で

答えて

1

アングルブラケット(<>)を除去しなければならない:TLDPページで

std::string up = "\033[<"+bs+">A"; 
std::string down = "\033[<"+bs+">B"; 
std::string back = "\033[<"+bs+">D"; 

<N>は、例えば、イタリック体のテキストを表すために古風な表記を使用して、数値であることが想定され、 N。でもそれと

、あなたはまだやるべき仕事を持っているが、これはスタートです:

┌─ ─ ─ ┐ 




    ─ └ ─ ┘