注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

杨伟的博客

程序人生

 
 
 

日志

 
 

在 VC 下实现 TC / BC 中的删除光标所在行的函数 delline()  

2011-08-03 10:58:00|  分类: IT界 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

delline() 是 TC / BC 下用来实现删除光标定位的函数,VC6 下没有同名函数,不过通过 API 可以实现同样的功能。下面就是封装成 TC / BC 同样的接口的 delline() 函数:

// 编译环境:Visual C++ 6.0
#include <stdio.h>
#include <conio.h>
#include <windows.h>

// 删除光标所在行
void delline()
{
    HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hConsoleOutput, &csbi);

    SMALL_RECT rect = {0, csbi.dwCursorPosition.Y + 1, csbi.dwSize.X - 1, csbi.dwSize.Y - 1};
    COORD coord = {0, csbi.dwCursorPosition.Y};
    CHAR_INFO ci = {WCHAR(0), csbi.wAttributes};
    ScrollConsoleScreenBuffer(hConsoleOutput, &rect, NULL, coord, &ci);
}

// 移动光标到指定位置
void gotoxy(int x, int y)
{
    COORD coord = {x - 1, y - 1};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

// 主函数
void main()
{
    // 在屏幕上生成一些随即字符,以便检查 delline() 的效果
    for(int i = 0; i < 100; i++)
    {
        gotoxy(rand() % 80, rand() % 25);
        putch(rand() % 26 + 65);
    }

    // 定位到 10, 10 位置,输出信息
    gotoxy(10, 10);
    printf("马上就要删除这行啦~~(按任意键继续)");
    getch();

    // 删除光标所在行
    delline();

    // 按任意键退出
    getch();
}

gotoxy() 函数在之前写过一篇文章中有介绍:
在 VC 下实现 TC / BC 中的光标定位函数 gotoxy()
http://yangw80.blog.163.com/blog/static/247518002201010171130715/

  评论这张
 
阅读(8)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017