EasyX:已经有了一个绘图窗口,想要这个窗口接受从控制台输入的汉字,但是现在的代码写入后,会新建一个窗口,原来的窗口消失,请问怎么解决这个问题?
1条回答 默认 最新
关注
不知道你这个问题是否已经解决, 如果还没有解决的话:- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7523878
- 这篇博客你也可以参考下:番外篇:入门EasyX图形库(带你进入不一样的程序窗口,超详解)
- 除此之外, 这篇博客: EasyX接收并显示从控制台输入的数字和英文中的 EasyX如何接收并显示从控制台输入的数字和英文 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
自学EasyX,由于Easyx绘图库里执行不了cin和cout函数,无法通过此方法实现从控制台显示输入的数字和英文
对这个问题困扰很久找不到其他易懂的办法所以一直解决不了。相信很多人也都跟我一样,恰好上次找到了笨方法,就把它分享给大家~1.首先需将字符集设置为多字符集
2.其次先看代码
#include<iostream> #include<graphics.h> #include<string> #include<conio.h> using namespace std; int main() { //设置窗口大小 背景颜色 initgraph(480, 480); setbkcolor(WHITE); cleardevice(); //设置字体颜色 还有测试显示字体 settextcolor(BLACK); settextstyle(25, 0, "黑体"); outtextxy(10, 220, "显示内容:"); string str1,str2; //头文件 string //str1用来放c的总内容 str2每次存放“显示内容:”+str1,方便输出 char c; //定义字符c接收键盘输入 while ((c = _getch()) != '\r') //如果没按回车,接收一个c { //getch()头文件 conio.h str2 = ""; if (c == '\b') //如果c是退格符,str1删掉一个 { str1 = str1.substr(0, str1.size() - 1); } else{ str1 += (int)c; } str2 = "显示内容:" + str1; cleardevice(); outtextxy(10, 220, str2.c_str()); //在窗口坐标为(10,220)的地方开始输出str2的内容 } while (1); //结束不跳出 }
说明:这里str1拿来存放getch()得到的总内容, str2用来存放 显示内容+str1,一定要区分
运行结果:输入Easy.X
由于getch()每次只接收一个字符,所以它只能显示接收输入的字符和数字,并不能显示汉字,听说drawtext()可以解决,可一直找不到其他办法,要是有看到或者有其他方法也要共享一下给我哦
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报