在Console C ++中移动字母

时间:2017-04-30 00:50:41

标签: c++ console-application

我试图通过将控制台光标移回到开头并输出'\ 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;
}

无论如何都要将文字向下移动?

2 个答案:

答案 0 :(得分:0)

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

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

如果您想要一些便利的控制台操作作为长期解决方案,请检查ncurses

我使用以下代码进行测试,结果非常完美。

#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;
}

答案 1 :(得分:0)

SetConsoleCursorPostion的辅助参数是光标的坐标,因此您必须将其设置为:SetConsoleCursorPostion(GetStdHandle(STD_OUTPUT_HANDLE), {0, 2});

顺便说一下,你的代码没有编译(#includes ???,没有cout的命名空间等等。)