출력에 프레임을 그리려합니다.커서를 새로운 줄로 이동하지 않고도 gotoxy (80, 25) 위치에 문자 작성
내 창 크기는 I가 성공적으로 코드 아래 사용하여 모든 라인을 그린의 80x25 (문자 폭 x 높이)
입니다. 하지만 마지막 지점 (80, 25)에 쓰면 커서를 처리 할 수없는 다음 줄로 커서가 이동합니다.
내 코드는 다음과 같습니다 : 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);
}
는 마지막 행과 다음 행으로 커서를 이동하면 내 프레임이 병에 표시하게된다. 이전에 그린 모든 수평선은 하나씩 위로 이동합니다.
나는 이것이 비정상적인 행동이 아닙니다.
하지만이 옵션을 없애기위한 다른 옵션은 없습니까? 그렇지 않으면 내 프레임에서 마지막 줄을 사용할 수 없습니다.
DosBox를 사용하여 Windows 8 x64 OS에서 Turbo C++을 실행하고 있습니다. 그래서 난 항상 수동으로 윈도우의 속성에서 창 높이를 설정할 수 없습니다.
'SetConsoleCursorPosition'을 시도해 보면 다시 상단 라인으로 설정할 수 있습니다. 작동하지 않는다면 아마도'ScrollConsoleScreenBuffer'입니다. – chris
20 살짜리 컴파일러를 사용하는 이유가 있습니까? – user93353
아니요 ..-(@chris이 기능은 Turbo C++에서 작동하지 않습니다. 도움말 색인에서 이러한 항목을 검색했습니다. – shashwat