关于gotoxy()与 clrscr()、textbackground()函数
在VS2010中无法直接调用这两个函数,可以通过自己添加来实现调用。
1.gotoxy()函数
原 型:extern void gotoxy(int x, int y),功能是将光标移动到指定位置,用法是#include <system.h>。
功 能:将光标移动到指定位置说明:gotoxy(x,y)将光标移动到指定行x和列y。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐标。
gotoxy(0,0)将光标移动到屏幕左上角。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "conio.h"
#include "windows.h"
void gotoxy(int x, int y)
{COORD coord = {x, y}; /*COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。其定义为:typedef struct _COORD {SHORT X; // horizontal coordinateSHORT Y; // vertical coordinate} COORD;*/SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);//GetStdHandle获取标准输出设备句柄;两个参数分别是指定哪个窗体,具体位置
}
2.clrscr()函数
功 能:清除文本模式窗口,就是把之前显示出的文字字符去掉。
/*清屏函数*/
#include <stdio.h>
#include <windows.h>
#define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s on line %d\n", __FILE__, GetLastError(), api, __LINE__);}
void MyCls(HANDLE) ;
inline void clrscr(void)
{HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);MyCls(hStdOut);return;
}
void MyCls(HANDLE hConsole)
{COORD coordScreen={0,0};//设置清屏后光标返回的屏幕左上角坐标BOOL bSuccess;DWORD cCharsWritten;CONSOLE_SCREEN_BUFFER_INFO csbi;//保存缓冲区信息DWORD dwConSize;//当前缓冲区可容纳的字符数bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息PERR(bSuccess,"GetConsoleScreenBufferInfo");dwConSize=csbi.dwSize.X * csbi.dwSize.Y;//缓冲区容纳字符数目//用空格填充缓冲区bSuccess=FillConsoleOutputCharacter(hConsole,(TCHAR)' ',dwConSize,coordScreen,&cCharsWritten);PERR(bSuccess,"FillConsoleOutputCharacter");bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息PERR(bSuccess,"ConsoleScreenBufferInfo");//填充缓冲区属性bSuccess=FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten);PERR(bSuccess,"FillConsoleOutputAttribute");//光标返回屏幕左上角坐标bSuccess=SetConsoleCursorPosition(hConsole,coordScreen);PERR(bSuccess,"SetConsoleCursorPosition");return;
}
3.textbackground()函数·
功 能: 选择新的文本背景颜色
用 法: void textbackground(int color);
#include <stdio.h>
#include <string.h>
#include "windows.h"
#include "conio.h"int textbackground(short iColor)
{HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_SCREEN_BUFFER_INFO csbInfo;GetConsoleScreenBufferInfo(hd, &csbInfo);return SetConsoleTextAttribute(hd, (iColor<<4)|(csbInfo.wAttributes&~0xF0));
}
4.综合例子
/*题目:学习 gotoxy()与 clrscr()函数*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "conio.h"
#include "windows.h"#define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s on line %d\n", __FILE__, GetLastError(), api, __LINE__);}
void MyCls(HANDLE) ;
inline void clrscr(void)
{HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);MyCls(hStdOut);return;
}
void MyCls(HANDLE hConsole)
{COORD coordScreen={0,0};//设置清屏后光标返回的屏幕左上角坐标BOOL bSuccess;DWORD cCharsWritten;CONSOLE_SCREEN_BUFFER_INFO csbi;//保存缓冲区信息DWORD dwConSize;//当前缓冲区可容纳的字符数bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息PERR(bSuccess,"GetConsoleScreenBufferInfo");dwConSize=csbi.dwSize.X * csbi.dwSize.Y;//缓冲区容纳字符数目//用空格填充缓冲区bSuccess=FillConsoleOutputCharacter(hConsole,(TCHAR)' ',dwConSize,coordScreen,&cCharsWritten);PERR(bSuccess,"FillConsoleOutputCharacter");bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//获得缓冲区信息PERR(bSuccess,"ConsoleScreenBufferInfo");//填充缓冲区属性bSuccess=FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten);PERR(bSuccess,"FillConsoleOutputAttribute");//光标返回屏幕左上角坐标bSuccess=SetConsoleCursorPosition(hConsole,coordScreen);PERR(bSuccess,"SetConsoleCursorPosition");return;
}int textbackground(short iColor)
{HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_SCREEN_BUFFER_INFO csbInfo;GetConsoleScreenBufferInfo(hd, &csbInfo);return SetConsoleTextAttribute(hd, (iColor<<4)|(csbInfo.wAttributes&~0xF0));
}void gotoxy(int x, int y)
{COORD coord = {x, y}; /*COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。其定义为:typedef struct _COORD {SHORT X; // horizontal coordinateSHORT Y; // vertical coordinate} COORD;*/SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);//GetStdHandle获取标准输出设备句柄;两个参数分别是指定哪个窗体,具体位置
}void main(void)
{printf("----------------fdmsaf\r\n");clrscr();//system("CLS");/*清屏函数:在VS2010中直接不能调用clrscr,参考网上大神做了以上函数*/textbackground(2);gotoxy(1, 5);/*定位函数*/cprintf("Output at row 5 column 1\n");textbackground(3);gotoxy(20, 10);cprintf("Output at row 10 column 20\n");system("pause");
}
关于gotoxy()与 clrscr()、textbackground()函数相关推荐
- 学习gotoxy()与clrscr()函数
//学习gotoxy()与clrscr()函数 //程序分析 //程序源代码 #include <conio.h> void main() { clrscr();/*清屏函数*/ te ...
- C语言——实例033 gotoxy()与clrscr()函数
/*Name: Copyright: Author: Date: 31/07/17 10:54Description: [程序33]题目:学习gotoxy()与clrscr()函数 clrscr(): ...
- C语言必会100题(7)。输入星期的第一个字母来判断一下是星期/Press any key to change color/学习gotoxy()与clrscr()函数/练习函数调用/文本颜色设置
特此鸣谢:鱼C_小甲鱼(B站up主)不二如是(鱼C论坛大佬) 题目来源:https://fishc.com.cn 注:这些题在网上都可以搜到,题下面的代码大多是流传下来的答案(我重新排了一下版,增加了 ...
- 【程序33】学习gotoxy()与clrscr()函数(TC实现版本)
#include "conio.h" #include "stdio.h" void main(void) { clrscr();/*清屏函数*/ te ...
- C++经典算法题-gotoxy()与clrscr()函数
1. 题目 题目:学习gotoxy()与clrscr()函数 2. 代码示例 #include <conio.h>void main(void){clrscr(); /*清屏函数*/tex ...
- Visual C++中使用gotoxy() / clrscr()等函数
Visual C++中使用gotoxy() / clrscr()等函数 //Visual C++中使用gotoxy() / clrscr()等函数 #include <windows.h> ...
- VC6中代替 gotoxy() 和 clrscr() 方法
在C语言中,gotoxy()是用于在屏幕上定位光标到x,y的函数,clrscr()函数的作用是清空屏幕上的内容,像cmd里的cls命令. 但是在VC6中却是不支持gotoxy()和clrscr()这两 ...
- VC6不支持gotoxy()和clrscr()的替代办法
在C语言中,gotoxy()是用于在屏幕上定位光标到x,y的函数,今天看一个九九乘法口诀的源码需要用到这个函数. 而clrscr()函数的作用是清空屏幕上的内容,像cmd里的cls命令. 但是在VC6 ...
- 小白每天学习两个函数D1-(clrscr,gotoxy)
include <conio.h> void main(void) { clrscr();/*清屏函数*/ textbackground(2);clrscr函数为C语言的清屏函数,功能为清 ...
最新文章
- 在Windows系统上安装Ruby On Rails
- Excel 一键上传到数据库
- Lisp尺寸标注增加前后缀_求一CAD标注加前缀与后缀lisp
- STM32之外部中断
- 高数 | 【多元函数微分学】多元函数求极限方法总结
- 《凤凰项目-一个IT运维从传奇故事》总结
- 如何才能真正的学会设计模式
- Unity3D启动报错的解决方案
- oracle 官网下载
- opencv--normalize函数详解
- 微信视频聊天怎么美颜?以下方法可以帮到你!
- c语言小游戏小人的移动,C乐趣之移动的小人
- 安装Robo 3T(Robomongo)MongoDB可视化工具
- 中英互译软件工程初步设计
- SPARQL查询语言概念及语法
- Flutter 自定义控件-仿照安卓和抖音图标绘制
- BLDC电机FOC控制技术学习笔记2
- idea中JD-Intellij插件如何使用以及Luyten的使用
- cocos creator 大厅+子游戏模式探讨(creator版本1.8.2)
- 火山PC画板自绘打造自定义列表框
热门文章
- win7计算机提供权限,Win7获得管理员权限,打开权限文件的方法
- WPF下的语法高亮控件——AvalonEdit
- 洛谷P6804 权力药水
- Python中的xrange和range的区别
- python中documentelement_python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)...
- centos手动安装dotnet-sdk环境和dotnet调试工具
- 回归产业,才是互联网的下一波红利
- 文件目录折腾人.不用异常烦死人.
- unity3d 工程原理_Unity3D研究院之两个游戏工程资源同步问题(八十六)
- 全球与中国胚胎植入前染色体非整倍体检测试剂盒市场现状及未来发展趋势(2022)