求助,如何在控制台获得对应坐标的字符

93shell 2014-11-25 12:21:48
void draw(int m,int n)
{
COORD cor;
cor.X=m;
cor.Y=n;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cor);
}

例如以上代码可以实现对控制台固定坐标的输出,那么,有没有方法获取控制台固定坐标的字符呢?比如在(30,24)有一个字符'#',那么怎么读取他使得可以保存一个char中?
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
93shell 2014-11-25
  • 打赏
  • 举报
回复
网站被墙很多东西能找到但看不到,真是伤心,希望在这里能得到回答
93shell 2014-11-25
  • 打赏
  • 举报
回复
[quote=引用 2 楼 binaryhead 的回复:]
char read(int m,int n)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD rcd={m,n};
    static char *ch=new char;
    DWORD read;
    if(ReadConsoleOutputCharacter(hOut,ch,1,rcd,&read))
        return *ch;
    else return '#';
}
这是我写的代码,因为这个函数调用频繁,所有用了static保证只申请一次内存,但不释放他,请问我的个函数可以吗?会有漏洞吗?
赵4老师 2014-11-25
  • 打赏
  • 举报
回复
console屏幕处理例子程序。终端窗口屏幕处理相关API使用例子。来自MSVC20\SAMPLES\win32\console\ http://download.csdn.net/detail/zhao4zhong1/3461309
二进制脑袋 2014-11-25
  • 打赏
  • 举报
回复
引用 1 楼 g462686150 的回复:
网站被墙很多东西能找到但看不到,真是伤心,希望在这里能得到回答
你都知道用SetConsoleCursorPosition函数了,为什么不查一查MSDN上附近的函数呢?
#include <stdio.h>
#include <windows.h>

#define	COLUMN_SIZE		80
#define	ROW_SIZE		50

CHAR_INFO Char_Info[COLUMN_SIZE * ROW_SIZE];

char GetConsoleChar(int x, int y)
{
	HANDLE hConsole;
	COORD coIn, coUpperLeft;
	SMALL_RECT Rect;

	hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	
	coIn.X = ROW_SIZE;
	coIn.Y = COLUMN_SIZE;
	coUpperLeft.X = 0;
	coUpperLeft.Y = 0;
	Rect.Left = 0;
	Rect.Top = 0;
	Rect.Right = COLUMN_SIZE;
	Rect.Bottom = ROW_SIZE;
	ReadConsoleOutput(hConsole, Char_Info, coIn, coUpperLeft, &Rect);

	return Char_Info[COLUMN_SIZE * (x - 1) + y - 1].Char.AsciiChar;
}

int main()
{
	int i;
    printf("test output.\n2nd line.\n");

	for(i = 1; i < 10; i++)
		putchar(GetConsoleChar(1, i));

	return 0;
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧