在控制台C 中移动字母

Shifting Letters in Console C++

本文关键字:移动 控制台      更新时间:2023-10-16

我试图通过将控制台光标返回开始并输出' n'来将cout文本从控制台向下移动。但是当我尝试什么都没有发生时。

#include <windows.h>
#include <iostream>
using namespace std;
int main() {
cout << "Hello!nThis is a test!" << endl;
SetConsoleCursorPostion(GetStdHandle(STD_OUTPUT_HANDLE), {0, 0});
cout << 'n';
return 0;
}

无论如何是否有向下移动文本?

SetConsoleCursorPostion的次要参数是光标的坐标,因此您必须这样设置: SetConsoleCursorPostion(GetStdHandle(STD_OUTPUT_HANDLE), {0, 2});

,顺便说一句,您的代码不编译(#includes ???,cout等没有名称空间(

首先,请编辑您的代码以纠正错别字。

第二:(0,0)将光标放在一开始不在底部。
第三:cout应该在SetConsoleCursorPosition之后。
最后:建议知道控制台窗口尺寸或使用其他功能获取它。

如果您想要一些东西,则可以为您提供长期解决方案的控制台操作。

我使用以下代码进行了测试,并且它的工作原理。

#include <windows.h>
#include <iostream>
using namespace std;
int main() {
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {5, 5});
cout << "Hello!" << endl;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {5, 8});
cout << "This is a test!" << endl;
cout << 'n';
return 0;
}