c语⾔输出⼀系列的坐标点,第4章C语⾔输⼊输出2、C语⾔在
屏幕的任意位置输出字符...
初学编程的读者,肯定很想编写出⼀个游戏来秀⼀下,贪吃蛇就是C语⾔贪吃蛇游戏演⽰和说明》了解更多。
编写游戏的第⼀步就是搞定光标定位问题,这样你的程序就可以随⼼所欲、按任意顺序、在任意位置输出了。
光标定位需要使⽤windows.h头⽂件中的SetConsoleCursorPosition函数:
SetConsoleCursorPosition(HANDLE hConsoleOutput, COORD dwCursorPosition);
SetConsoleCursorPosition(HANDLE hConsoleOutput, COORD dwCursorPosition);
hConsoleOutput表⽰控制台缓冲区句柄,可通过GetStdHandle(STD_OUTPUT_HANDLE)来获得;dwCursorPosition是光标位置,也就是第⼏⾏第⼏列,它是COORD类型的结构体。
例如,将光标定位到第3⾏第3列:
/
/定义光标位置
COORD coord;
coord.X = 3; //第3⾏
coord.Y = 3; //第3列
//获取控制台缓冲区句柄
HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
//设置光标位置
SetConsoleCursorPosition(ConsoleHandle, coord);
//定义光标位置
COORD coord;
coord.X = 3; //第3⾏
coord.Y = 3; //第3列
//获取控制台缓冲区句柄
HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
//设置光标位置
SetConsoleCursorPosition(ConsoleHandle, coord);
这样,程序就可以从第3⾏第3列开始输出了。
将代码补充完整:
#include
#include
int main(){
//定义光标位置
COORD coord;
coord.X = 3; //第3⾏
coord.Y = 3; //第3列
//获取控制台缓冲区句柄
HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
//设置光标位置
SetConsoleCursorPosition(ConsoleHandle, coord);
printf("123");
return 0;
}
#include
#include
int main(){
//定义光标位置
COORD coord;
coord.X = 3; //第3⾏
coord.Y = 3; //第3列
//获取控制台缓冲区句柄
HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
//设置光标位置
SetConsoleCursorPosition(ConsoleHandle, coord);
printf("123");
return 0;
}
运⾏结果:
注意:窗⼝的左上⾓是第0⾏第0列。搞定了光标重定位,你就可以将输出顺序打乱了,想在哪⾥输出就在哪⾥输出。例如:#include
#include
//设置光标位置
void setCursorPosition(int x, int y);
/
/设置⽂字颜⾊
void setColor(int color);
int main(){
setColor(3);
setCursorPosition(3, 3);
puts("★");
setColor(0XC);
setCursorPosition(1, 1);
puts("◆");
setColor(6);
c语言游戏贪吃蛇源码setCursorPosition(6, 6);
puts("■");
return 0;
}
void setCursorPosition(int x, int y){
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); }
void setColor(int color){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color) ; }
#include
#include
//设置光标位置
void setCursorPosition(int x, int y);
//设置⽂字颜⾊
void setColor(int color);
int main(){
setColor(3);
setCursorPosition(3, 3);
puts("★");
setColor(0XC);
setCursorPosition(1, 1);
puts("◆");
setColor(6);
setCursorPosition(6, 6);
puts("■");
return 0;
}
void setCursorPosition(int x, int y){
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void setColor(int color){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color) ;
}
运⾏结果:
可以发现,先输出的字符位置不⼀定靠前,可以在任意位置。
看到这⾥,很多初学者会不懂,甚⾄⼀头雾⽔,不过没关系,这⾥仅仅是演⽰,引起你对C语⾔的兴趣,待学完C语⾔的基本语法后会恍然⼤悟。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论