0

我试图在我的输出中画一个框架。

我的窗口大小是 80x25(字符宽度 x 高度)

我已经使用下面的代码成功绘制了所有线条。但是写到最后一点 (80, 25) 是让光标移动到我无法处理的下一行。

我的代码如下:

#include <iostream.h>
#include <conio.h>

void DrawFrame(int);
void DrawHoriLine(int, int, int, int, int);

void main()
{
    clrscr();
    DrawFrame(GREEN);
    getch();
}

void DrawFrame(int color)
{
    DrawHoriLine(2,  1, 78, 205, color);
    DrawHoriLine(2,  3, 78, 196, color);
    DrawHoriLine(2, 22, 78, 196, color);
    DrawHoriLine(2, 24, 78, 205, color);
    gotoxy(1, 3);   cprintf("%c", 198);
    gotoxy(80, 3);  cprintf("%c", 181);
    gotoxy(1, 1);   cprintf("%c", 213);
    gotoxy(80, 1);  cprintf("%c", 184);
    gotoxy(1, 25);  cprintf("%c", 212);
    gotoxy(80, 25); cprintf("%c", 190);  //*** Here is problem
}

void DrawHoriLine(int x, int y, int length, int charCode, int color)
{
    gotoxy(x, y);
    textcolor(color);
    for (int i=0; i<length; i++)
        cprintf("%c", charCode);
}

由于 25 是最后一行,将光标移动到下一行会使我的框架无法正常显示。之前绘制的所有水平线都向上移动了一个。

我知道这不是不寻常的行为。
但是没有其他选择可以摆脱这个..吗?如果不是,我将无法使用框架中的最后一行。

我正在使用 DosBox 在 Windows 8 x64 操作系统中运行 Turbo C++。所以我不能像以前那样手动从窗口的属性中设置窗口高度。

4

2 回答 2

2

终端文本模式分辨率为 80 x 24 。最多绘制 24 而不是 25 ,也许?

并尽快摆脱TC。摆脱 TC 后结帐 ncurses。

于 2012-12-25T17:30:38.117 回答
0

我认为您可以扩展 24/25 行限制。命令提示符应该可以滚动一段时间。

于 2016-09-22T01:30:08.580 回答