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