C语言编程——控制台程序光标控制
2013-11-02 14:54
399 查看
对于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<windows.h>###
下面来看一个具体应用的例子:
#include<stdio.h>
#include<windows.h>
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;
}
相关文章推荐
- 比较详细的WinXP故障恢复控制台完全手册第1/2页
- mysql 控制台操作
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 基于C语言fflush()函数的使用详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- 探讨register关键字在c语言和c++中的差异
- C中实现矩阵乘法的一种高效的方法
- c语言printf函数的使用详解
- C语言学籍管理系统源代码
- 浅析C语言中的sizeof
- c语言内存泄露示例解析
- 浅析C语言位域和位段
- 解析C语言中位字段内存分配的问题
- 学生成绩管理系统C语言代码实现
- 基于C语言sprintf函数的深入理解