c语言 控制台程序 光标,C语言编程——控制台程序光标控制

对于C语言的初学者,基本上只能写一些控制台程序。然而有时候会涉及一些对光标的简单操作,现在一般都是用的VC++6.0,不再支持以前TC中的wherex、wherey、gotoxy等函数了,那么在VC中该怎样做呢?接下来,我就简单讲讲如何在VC中实现以上三个函数。

【以下x、y分别代表列数和行数】

//获取光标的位置x

int wherex()

{

CONSOLE_SCREEN_BUFFER_INFO pBuffer;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

return (pBuffer.dwCursorPosition.X+1);

}

//获取光标的位置y

int wherey()

{

CONSOLE_SCREEN_BUFFER_INFO pBuffer;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

return (pBuffer.dwCursorPosition.Y+1);

}

//设置光标的位置

void gotoxy(int x,int y)

{

COORD c;

c.X=x-1;

c.Y=y-1;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

}

###注意:在用这些函数的时候要引用头文件#includ###

下面来看一个具体应用的例子:

#include

#include

int wherex()

{

CONSOLE_SCREEN_BUFFER_INFO pBuffer;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

return (pBuffer.dwCursorPosition.X+1);

}

//获取光标的位置y

int wherey()

{

CONSOLE_SCREEN_BUFFER_INFO pBuffer;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

return (pBuffer.dwCursorPosition.Y+1);

}

//设置光标的位置

void gotoxy(int x,int y)

{

COORD c;

c.X=x-1;

c.Y=y-1;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

}

int main()

{

int x, y;

int select;

gotoxy(10,5);

printf(" 学生C语言成绩管理系统");

gotoxy(15,8);

printf("*********************主菜单*********************");

gotoxy(15,9);

printf("* 1 输入 2 删除 *");

gotoxy(15,10);

printf("* 3 查找 4 修改 *");

gotoxy(15,11);

printf("* 5 插入 6 统计 *");

gotoxy(15,12);

printf("* 7 排序 8 保存 *");

gotoxy(15,13);

printf("* 9 显示 0 退出 *");

gotoxy(15,14);

printf("************************************************");

gotoxy(15,15);

printf("请输入你的选择(0-9):[ ]");

x=wherex();

y=wherey();

gotoxy(x-2,y);

scanf("%d",&select);

return 0;

}

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值