在没有将光标移动到新行之前,在gotoxy(80,25)位置上写入字符
writing a char on gotoxy(80, 25) position without having cursor moved to new line
我正在尝试在我的输出中绘制一个框架。
我的窗口大小是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是最后一行,将光标移动到下一行会使我的帧显示错误。所有先前绘制的水平线向上移动1。
我知道这不是一个不寻常的行为。
难道就没有别的办法摆脱这个……吗?如果没有,我将无法使用最后一行在我的框架。
我在Windows 8 x64操作系统中使用DosBox运行Turbo c++。所以我不能手动设置窗口的高度从窗口的属性,我总是这样做。
终端文本模式分辨率为80 * 24。也许可以画到24个而不是25个?
尽快摆脱TC。删除TC后,检查护士
我认为你可以延长24/25行的限制。命令提示符应该可以滚动一段时间
相关文章:
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- C++指针数组到字符数组中的特定位置
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 我如何知道字符串中字符相对于英文字母的位置值?
- 我正在尝试为字符打印一些相应的值,但条件总是转到其他位置
- 递增 'int i = 0' 以在初始化的字符数组的位置递增
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- 如何从输入字符串中提取特定位置的字符?
- 如何在 Clang AST 中的源位置之后找到字符的源位置?
- 从输入 1 查找输入 2 中字符的位置
- 为字符串中的每个字符(不是字符位置!)分配唯一的索引
- 提取字符后返回到文件中的特定位置
- 从文件对象的当前位置删除字符
- 访问字符阵列中不可用的内存位置(超出范围值)
- 使用指针在字符串中获取字符的位置
- 奇怪的字符出现在输入的字符串的位置
- 将字符数复制到新字符串位置的字符串操作,例如 S[0]
- QListWidgetItem的最右侧可见位置/字符
- 访问冲突读取位置c++字符向量