c语言-gotoxy实现先全部输出再做全部输入操作

需要用到的头文件:

#include<windows.h>
#include <iostream>

代码:
gotoxy(a,b)光标控制函数
a为行,b为列,坐标原点在左上角向右是行正方向,向下为列正方向
中文符号汉字在列方向为2个空间,英文字母符号为1个空间

using namespace std;
void gotoxy(int a, int b)
{
	HANDLE hOutput;
	COORD loc;
	loc.X =a;
	loc.Y=b;
	hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOutput, loc);
	return;
}
int main()
{
	printf("输入第一行:\n");
	printf("输入第二行:\n");
	int n;
	gotoxy(11,0);
	cin>>n;
	gotoxy(11,1);
	cin>>n;
	return 0;
}


在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的贪食蛇游戏的C语言实现,你可以参考一下: ```c #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define WIDTH 40 // 游戏界面宽度 #define HEIGHT 20 // 游戏界面高度 int snake[100][2]; // 蛇身数组 int food[2]; // 食物位置 int length = 1; // 蛇身长度 int direction = 3; // 蛇头方向,1:上,2:左,3:下,4:右 // 在指定位置输出字符 void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } // 初始化游戏 void init() { // 初始化蛇头位置 snake[0][0] = WIDTH / 2; snake[0][1] = HEIGHT / 2; // 随机生成食物位置 food[0] = rand() % WIDTH; food[1] = rand() % HEIGHT; } // 绘制游戏界面 void draw() { // 清空屏幕 system("cls"); // 绘制游戏界面 for (int i = 0; i < WIDTH + 2; i++) { printf("#"); } printf("\n"); for (int i = 0; i < HEIGHT; i++) { printf("#"); for (int j = 0; j < WIDTH; j++) { if (i == snake[0][1] && j == snake[0][0]) { printf("O"); // 绘制蛇头 } else if (i == food[1] && j == food[0]) { printf("X"); // 绘制食物 } else { int flag = 0; for (int k = 1; k < length; k++) { if (i == snake[k][1] && j == snake[k][0]) { printf("o"); // 绘制蛇身 flag = 1; break; } } if (!flag) { printf(" "); } } } printf("#"); printf("\n"); } for (int i = 0; i < WIDTH + 2; i++) { printf("#"); } printf("\n"); } // 蛇移动 void move() { // 记录蛇尾位置 int tail[2]; tail[0] = snake[length - 1][0]; tail[1] = snake[length - 1][1]; // 移动蛇身 for (int i = length - 1; i > 0; i--) { snake[i][0] = snake[i - 1][0]; snake[i][1] = snake[i - 1][1]; } // 移动蛇头 switch (direction) { case 1: snake[0][1]--; break; case 2: snake[0][0]--; break; case 3: snake[0][1]++; break; case 4: snake[0][0]++; break; } // 判断是否撞墙或撞到自己的身体 if (snake[0][0] < 0 || snake[0][0] >= WIDTH || snake[0][1] < 0 || snake[0][1] >= HEIGHT) { printf("Game over!\n"); exit(0); } for (int i = 1; i < length; i++) { if (snake[0][0] == snake[i][0] && snake[0][1] == snake[i][1]) { printf("Game over!\n"); exit(0); } } // 判断是否吃到食物 if (snake[0][0] == food[0] && snake[0][1] == food[1]) { length++; food[0] = rand() % WIDTH; food[1] = rand() % HEIGHT; } // 清除蛇尾 gotoxy(tail[0] + 1, tail[1] + 1); printf(" "); } // 处理键盘输入 void input() { if (_kbhit()) { int key = _getch(); switch (key) { case 'w': if (direction != 3) { direction = 1; } break; case 'a': if (direction != 4) { direction = 2; } break; case 's': if (direction != 1) { direction = 3; } break; case 'd': if (direction != 2) { direction = 4; } break; } } } int main() { // 初始化游戏 init(); // 游戏循环 while (1) { // 绘制游戏界面 draw(); // 蛇移动 move(); // 处理键盘输入 input(); // 延时 Sleep(100); } return 0; } ``` 上面的代码使用了Windows API中的`gotoxy`函数来实现在指定位置输出字符的功能,如果你在其他操作系统上运行可能会出现问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值