【发布时间】:2023-03-08 02:17:02
【问题描述】:
我正在使用的终端模拟器出现问题,我已设法将问题缩小到 Windows 控制台中奇怪的光标行为。 在常规 cmd 中,当您将字符准确地写入行尾时,光标会跳转到下一行。 (见下图)
当我尝试在我编写的程序中使用 printf 实现相同目的时,光标停留在同一个字符上。 (见下图)
我已经设法通过打印 hacky " \b" 来实现“类似 cmd”的结果,但我正在尝试找到一种更好的方法来做到这一点(即,下一行的第一个字符可能是有意义的,并且我不想抹去。读那个字符当然不优雅)。
我正在寻找一种方法来自动实现这一点。控制台的一些配置可能吗? 这里有人知道怎么做吗?
代码示例(假设控制台的默认大小为 80):
int main() {
printf("12345678901234567890123456789012345678901234567890123456789012345678901234567890");
fflush(stdout);
getc();
return 0;
}
如果你运行这段代码,在打印之后,光标会停留在行尾的字符 0 上。 我的问题是如何使光标出现在下一行的开头,而不更改硬编码字符串。
【问题讨论】:
-
你没有加入图片
-
两张图片都在帖子里面
-
您是否为此创建了控制台缓冲区?还是与 cmd 分开的程序?
-
Visual Studio 中一个简单的控制台应用程序
-
请不要包含任何代码,问题根本与编程无关(只是关于 Windows 控制台应用程序的工作原理)请编辑问题以反映您在做什么,预期响应和实际收到的响应。详情请见How to create a Minimal, Complete, and Verifiable example。