从控制台中删除单个字符

Posted

技术标签:

【中文标题】从控制台中删除单个字符【英文标题】:Remove single character from console 【发布时间】:2015-12-12 06:30:58 【问题描述】:

我正在尝试为 Windows 控制台制作一个蛇游戏,而无需在每次蛇移动时都使用“system(“cls”)”来重新绘制游戏板、食物和蛇。相反,我想添加一个头部并以一定的间隔移除尾部。我正在使用“cout”为新蛇头打印一个“@”,效果很好,但我不知道如何(或将其设为空白)并保留其余字符控制台的原样。有什么建议吗?

【问题讨论】:

请添加语言标签并说明您的解决方案的可移植性。 提到了cout。所以我认为是c++ 【参考方案1】:

添加以下功能

#include "windows.h"

void gotoxy(int x, int y) 
 
  HANDLE hConsoleOutput; 
  COORD dwCursorPosition;

  cout.flush(); 
  dwCursorPosition.X = x; 
  dwCursorPosition.Y = y; 
  hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); 
  SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition); 

您需要做的就是使用gotoxy(your_snake_tail_x,your_snake_tail_y);,然后在那里打印空间。

【讨论】:

以上是关于从控制台中删除单个字符的主要内容,如果未能解决你的问题,请参考以下文章

Android如何检测“删除”按钮按键盘上删除单个字符?

从 PHP 字符串中删除控制字符

如何从 UTF8 字符串中删除控制字符

从 Uri 获取单个查询参数 [重复]

无法从字符串数组中删除空格

从 Parse 中删除推送通知历史记录条目