当应用程序执行大量 printf 时,如何将终端的最后一行设置为固定输入?
How to set the last line in terminal fixed for input while the application is doing a lot of printf?
我想将我终端上的最后一个输入行设置为固定的,这样从应用程序打印的所有内容都不会干扰用户的输入。我正在制作 Unreal Engine 4 插件,但我需要管理 Linux 终端输入。
我尝试使用 cin 获取输入,它可以工作,但我不知道如何将用户输入与应用程序输出分开。
std::string input;
getline(std::cin, input);
char inputchar[input.size() + 1];
strcpy(inputchar, input.c_str());
UE_LOG(LogServerConsole, Warning, TEXT("Current Input: %s"), *FString(inputchar));
在 Linux 上,使用 ANSI escape sequences 绝对可以完成您的要求。但是,可能并不意味着容易;这些是非常 low-level 必须构建的原语。
Ncurses 是一个 higher-level 库,用于在终端 window 中做更复杂的事情。我鼓励您阅读它 here 和许多其他在线地方,看看它是否满足您的需求。
我想将我终端上的最后一个输入行设置为固定的,这样从应用程序打印的所有内容都不会干扰用户的输入。我正在制作 Unreal Engine 4 插件,但我需要管理 Linux 终端输入。
我尝试使用 cin 获取输入,它可以工作,但我不知道如何将用户输入与应用程序输出分开。
std::string input;
getline(std::cin, input);
char inputchar[input.size() + 1];
strcpy(inputchar, input.c_str());
UE_LOG(LogServerConsole, Warning, TEXT("Current Input: %s"), *FString(inputchar));
在 Linux 上,使用 ANSI escape sequences 绝对可以完成您的要求。但是,可能并不意味着容易;这些是非常 low-level 必须构建的原语。
Ncurses 是一个 higher-level 库,用于在终端 window 中做更复杂的事情。我鼓励您阅读它 here 和许多其他在线地方,看看它是否满足您的需求。