清屏函数 删除某一行字符 从而实现动态更新数据

vscriptj 2005-05-25 08:51:27
清屏函数 删除某一行字符 从而实现动态更新数据

clrser clreol delline 都不好使 可能是不会用 请高手讲解他们的用法 以及是否还有别的清屏函数。
...全文
176 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdy_8212 2005-05-26
  • 打赏
  • 举报
回复
<dos.h>
楼上的楼上;gotoxy可能是最直接的。呵。。
foochow 2005-05-26
  • 打赏
  • 举报
回复
mark!学习ing....
baojian88888 2005-05-26
  • 打赏
  • 举报
回复
这是我n年以前一个dos程序中的一段代码,用于清屏,使用的直接写屏的方法,速度极快

#include <dos.h>

/*
功能:清屏
参数:
X1, Y1 清屏矩形的左上角坐标
X2, Y2 清屏矩形的右下角坐标
Color 颜色
*/
void MyClrscr(int X1, int Y1, int X2, int Y2, char Color)
{
char far *pScr1, *pScr2;
pScr1 = (char far *)MK_FP(0xb800, 0x0000) + (X1 - 1) * 2;
for(int y = Y1; y <= Y2; y++)
{
pScr2 = pScr1 + (y - 1) * 160;
for(int x = X1; x <= X2; x++, pScr2++)
{
*pScr2++ = 32;
if(Color)
(*pScr2) = Color;
}
}
}
tuxw 2005-05-26
  • 打赏
  • 举报
回复
gotoxy,wherex,wherey
在 conio.h 中 // TC
tuxw 2005-05-26
  • 打赏
  • 举报
回复
清会将所有数据都清掉,不是好方法

其实需要的只是光标定位到需要更新的地方,输出更新数据就可以了
TC 中有现成的函数 gotoxy(x, y), 得到光标位置 wherex(),wherey()


VC 中可以这样

#include "windows.h"
#include <stdio.h>

// 定位光标
void GotoXY(int x, int y)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD beginPos;
beginPos.X = x;
beginPos.Y = y;

SetConsoleCursorPosition(hStdOut,beginPos);
}

// 获取光标位置
void GetXY(int *x, int *y)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;

GetConsoleScreenBufferInfo(hStdOut,&csbi);
*x = csbi.dwCursorPosition.X;
*y = csbi.dwCursorPosition.Y;
}

void main()
{
int ox, oy;

// 正常输出
printf("一般数据\n");

// 保存光标位置
GetXY(&ox, &oy);

// 到要更新的地方
GotoXY(60,20);
printf("在这里更新数据");

// 加到正常输出的地方
GotoXY(ox, oy);
printf("继续输出\n");
}
lingzantia 2005-05-25
  • 打赏
  • 举报
回复
要#include<WINDOWS.H>
the777 2005-05-25
  • 打赏
  • 举报
回复
system("cls");
这就是清屏函数了。。
ltc_mouse 2005-05-25
  • 打赏
  • 举报
回复
试试这个~

gotoxy( 5, 5 );
printf("This is a test!");
getch();
gotoxy( 5, 5 );
printf(" ");
getch();
foochow 2005-05-25
  • 打赏
  • 举报
回复
system("cls");.....这个就Ok
lw1a2 2005-05-25
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
system("cls");
system("pause");
}
lw1a2 2005-05-25
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
system("cls");
system("pause");
}
oyljerry 2005-05-25
  • 打赏
  • 举报
回复
cls

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧