为什么putchar(';\b';)不显示回显空间?
在这段代码中,当我输入“qweCtrl+DCtrl+D”时,不显示backspace。结果是:为什么putchar(';\b';)不显示回显空间?,c,io,C,Io,在这段代码中,当我输入“qweCtrl+DCtrl+D”时,不显示backspace。结果是: void review2() { int ch; while((ch = getchar()) != EOF) putchar(ch); putchar('\b'); putchar('\n'); putchar('\007'); } 在这段代码中,它是显示空间。 结果是 void review2() { int ch; wh
void review2()
{
int ch;
while((ch = getchar()) != EOF)
putchar(ch);
putchar('\b');
putchar('\n');
putchar('\007');
}
在这段代码中,它是显示空间。 结果是
void review2()
{
int ch;
while((ch = getchar()) != EOF)
putchar(ch);
putchar('\b');
putchar('\007');
}
为什么会发生这种情况?退格字符只是移动光标,它不会删除显示器上显示的字符。屏幕上的退格是无损的,即它不会覆盖最初已经存在的内容。尝试
putchar('\b');putchar(“”);putchar('\b')
以使用space@pmg在第二个示例中,“\b”覆盖“e”,但在第一个示例中,由于某种原因,我不知道putchar(“\n”)会中断此过程。不,在第二个示例中,'\b'
将“打印位置”移动到“e”的顶部,在第二个示例中,“e”被“$”覆盖;在第一种情况下,“e”被(不可见、透明、逻辑)“\n”ctrl-d覆盖为eot,而不是bs
void review2()
{
int ch;
while((ch = getchar()) != EOF)
putchar(ch);
putchar('\b');
putchar('\007');
}
$ ./a.out
qweqw$