- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道是否有一种方法可以“卡住”输入行,以便在 c 中将输入和输出彼此分开。例如,我的控制台输出目前是这样的:
1 OutputLine1
2 OutputLine2
但我希望它是这样的:
1 OutputLine1
2 OutputLine2
3 Enter a Command:
我希望它能够随着程序接收数据流而改变。所以当它运行时它会是这样的
1 OutputLine1
2 OutputLine2
3 OutputLine3
4 Enter a Command:
要更改为:
1 OutputLine1
2 OutputLine2
3 OutputLine3
4 OutputLine4
5 Enter a Command:
我目前对所有输出都使用 printf(),但在这种情况下似乎行不通。我可以使用任何其他打印/输入库吗?
提前致谢!
最佳答案
这将适用于大多数终端(特别是在 xterm 中),我认为它比设置 curses 更容易:
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main(){
int lineno=1;
int c;
struct termios old_tio;
struct termios new_tio;
tcgetattr(STDIN_FILENO,&old_tio);
new_tio=old_tio;
new_tio.c_lflag &= (~ICANON&~ECHO);
tcsetattr(STDIN_FILENO,TCSANOW,&new_tio);
setvbuf(stdout,NULL,_IONBF,0);
while(1){
printf("%4d Enter a command: ",lineno);
c=getchar();
printf("\033[2K\033[50D%4d Command was %c\n",lineno++, c);
if(c=='q'){
break;
}
}
tcsetattr(STDIN_FILENO,TCSANOW,&old_tio);
return 0;
}
输出看起来像 OP 想要的:
evaitl@evbb ~/se $ ./foo
1 Command was a
2 Command was b
3 Command was c
4 Command was d
5 Command was q
6 Enter a command:
关于c - "Freezing"控制台中的输入行并打印在上面的行上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229827/
我认为这应该不是一个大问题,但我自己找不到解决方案。一如既往:p 我有一个 UIWebView,其背景颜色设置为clearColor,但是当我尝试向下滚动太多时,我会在加载的 HTML 上方看到深灰色
我注意到,每当我重新安装我的应用程序时,IdentifierForVendor 都会不断变化。有没有办法让我的设备拥有相同的标识符?问题是,我需要确保标识符相同,因为我有一个备份系统,即使在删除并重新
一切都在标题中。 我有一个带有单元格的 UITableView。 cells 有一个Shadow (self.layer.shadow...)。 问题是一个单元格的阴影重叠上方的单元格。我怎样才能防止
我正在尝试创建一个切换开关,您可以在其中点击一侧,然后背景会滑过以使该侧“处于事件状态”。 为了适应可变宽度,我使用 display: table 设置了切换的两侧。这很好用。然后,我将第三个 div
我是一名优秀的程序员,十分优秀!