【发布时间】:2013-05-04 04:21:23
【问题描述】:
我正在寻找一个在输入之前打印字符串的函数。我知道printf 和gets 可以做到这一点,但我希望字符串保留在给出输入的最后一行。输出在主线程中处理,输入在主线程启动的另一个线程中处理。
例如这是当前的控制台窗口(我输入了stop-command,'>'是前缀字符串):
[12:00:00] Starting server...
>stop
当控制台输出新行时,我希望输入始终在底行,如下所示:
[12:00:00] Starting server...
[12:00:01] Server started
>stop
我正在使用支持 Win32 和 VCL 的 Embarcadero C++Builder XE2。
编辑:我目前正在使用此代码,导致在 '>' 前缀之后打印输出:
char buf[256];
printf(">");
gets(buf);
【问题讨论】:
-
您可以使用 win32 api 设置控制台光标并写入该位置。我对你想要什么有点困惑,但你可以在光标处打印并移动它。只是在打印时光标通常位于控制台的底部。 msdn.microsoft.com/en-us/library/windows/desktop/…
-
永远不要以任何理由使用
gets。请改用fgets。
标签: c++ windows input console c++builder