有没有一种方法可以使用图形在C++中逐个字母地打印控制台中的文本

Is there a way you can print text in console letter by letter in C++ using graphics?

本文关键字:文本 控制台 打印 C++ 一种 方法 图形 可以使 有没有      更新时间:2023-10-16

我正在尝试用C++制作一个使用图形的游戏。我正在使用代码块。我试图制作一个屏幕,玩家告诉他/她的名字或用户名。我想让他们印刷的每一封信都出现,但我做不到。这就是我到目前为止所做的

void user_engleza()
{
cleardevice();
while(true)
{
char s[101];
ifstream f("nume.in");
ofstream g("nume.in");
bool ok = false;
char litera[1], nume[101];
int x, y, j = -1;
settextstyle(6, HORIZ_DIR, 7);
outtextxy(300, 100, "Your name will be");
x = 700;
y = 150;
while(ok == false)
{
cin >> litera[0];
g << nume[++j];
outtextxy(x, y, litera);
y = y + 100;
if(GetAsyncKeyState(VK_RETURN)) ok = true;
}
}
}

感谢您的帮助。

不,您不能将BGI用于控制台

BGI使用VGA图形视频模式,MS-DOS控制台使用VGA文本视频模式。这些都不一样——它们甚至使用不同的内存段。有关更多信息,请参阅:

  • 程序集8086中的图形模式

Windows中,控制台不是一个文本窗口,而是它的模拟窗口。如果你获得了它的句柄,你可以访问它的画布并在上面渲染图形内容,但BGI不可能做到这一点,因为它是从MS-DOS模拟旧的BGI窗口。

如何在BGI窗口(无控制台(上使用BGI渲染文本。若要一次渲染一个字符,需要传递长度为1的字符串,而不是字符。像这样的东西:

char c[2]={' ',0}; // null terminanted 1 char string
c[0]='A'; // any character you want
outtextxy(x,y,c);

CCD_ 1看起来也很多。我认为y+=20或类似的字符之间的100像素太多了,你的窗口有多大?