Eclipse打印符号代替' chars'在C的控制台上

时间:2016-03-01 15:20:14

标签: c eclipse console

C的新手。试图让它与Eclipse一起工作,因为它似乎比使用vi(编译之前的格式化,语法警告等)更容易使用。

现在我的程序在终端中工作正常,但在Eclipse控制台中它看起来效果不好。

我找到了错误的来源,但我需要一些帮助修复它。 出于某种原因,Eclipse控制台不喜欢重新定位光标以打印现有文本(或者看起来似乎如此)。因为当我使用printf(...)定期打印时,打印效果很好。

我正在使用这些函数重新打印,Eclipse控制台不喜欢它。我首先用set_cur_pos(..)重新定位光标,然后在for循环中通过调用put(..)

在现有文本的顶部重新打印我的字符
//
// Name:    put
// Description: calls putchar to place a character, then flushes stdout
// @param character - character to print onto console
void put(char character) {
    putchar(character);
    fflush( stdout);
} // clear

//
// Name:    set_cur_pos
// Description - sets cursor at a specific location on console
// @param rCursor - row location to place cursor
// @param cCursor - col location to place cursor
//
void set_cur_pos(int rCursor, int cCursor) {
    printf("\033[%d;%dH", rCursor, cCursor);
} // set_cur_pos

EG:我会像这样使用它

/**

 * Description: Function prints a grid using cursor control.
 */
static void printOver(char grid[40][40]) {

    int i, j;
    for ( i = 0; i < size; i++ ) {

        for ( j = 0; j < size; j++ ) {
            set_cur_pos(i, j);
            put(grid[i][j]);
        }
    }

为什么Eclipse打印出来的任何想法?

[2J[0;0H [0;1H*[0;2H [0;3H [0;4H [0;5HY[0;6H*[0;7H [0;8H [0;9H [1;0H [1;1H [1;2H [1;3H [1;4H [1;5HY[1;6H [1;7H [1;8H [1;9H*[2;0H [2;1H [2;2H*[2;3H [2;4H*[2;5HY[2;6H [2;7HY[2;8H [2;9H [3;0H [3;1H [3;2H [3;3H [3;4HY[3;5HY[3;6H [3;7H [3;8H [3;9H [4;0H*[4;1H [4;2H [4;3H [4;4HY[4;5H [4;6H [4;7H [4;8H [4;9H [5;0H*[5;1HY[5;2H [5;3H [5;4H [5;5H [5;6H [5;7H [5;8H*[5;9H [6;0HY[6;1HY[6;2H [6;3H [6;4H [6;5HY[6;6HY[6;7H*[6;8H [6;9H [7;0H [7;1HY[7;2H [7;3HY[7;4H [7;5H [7;6HY[7;7H [7;8H [7;9H*[8;0HY[8;1HY[8;2H [8;3H [8;4H [8;5H [8;6H [8;7H*[8;8H [8;9H [9;0H [9;1H [9;2H [9;3HY[9;4H [9;5H*[9;6H [9;7H [9;8H [9;9H [10;0H
[0;0H [0;1H_[0;2H [0;3H [0;4H [0;5HY[0;6H_[0;7H [0;8H [0;9H [1;0H [1;1H [1;2H [1;3H [1;4H [1;5HY[1;6H [1;7H [1;8H [1;9H*[2;0H [2;1H [2;2H*[2;3H [2;4H*[2;5HY[2;6H [2;7H*[2;8H [2;9H [3;0H [3;1H [3;2H [3;3H [3;4HY[3;5H*[3;6H [3;7H [3;8H [3;9H [4;0H*[4;1H [4;2H [4;3H [4;4HY[4;5H [4;6H [4;7H [4;8H [4;9H [5;0H*[5;1HY[5;2H [5;3H [5;4H [5;5H [5;6H [5;7H [5;8H*[5;9H [6;0HY[6;1H*[6;2H [6;3H [6;4H [6;5HY[6;6H*[6;7H_[6;8H [6;9H [7;0H [7;1HY[7;2H [7;3HY[7;4H [7;5H [7;6HY[7;7H [7;8H [7;9H_[8;0HY[8;1HY[8;2H [8;3H [8;4H [8;5H [8;6H [8;7H_[8;8H [8;9H [9;0H [9;1H [9;2H [9;3HY[9;4H [9;5H*[9;6H [9;7H [9;8H [9;9H [10;0H

1 个答案:

答案 0 :(得分:0)

这些\ 033 [...转义序列不是终端可移植的,例如。在bash和cmd之间。 所以我认为eclipse IDE控制台不会将它们解释为游标集命令。 不使用PAL的单个便携式光标命令是'\ r',将设置 光标到行的开头。