C 通过将每个退格替换为\b将其输入复制到输出的程序
但当我按backspaceC 通过将每个退格替换为\b将其输入复制到输出的程序,c,C,但当我按backspace\b时,屏幕上不会显示该按钮 但当我按backspace时,不会显示\b来代替它 您的代码编译得很好,但是退格不会打印到控制台。 与其他格式字符不同,backspace不会显示 原因是,如上所述: int main() { int c, d; while ( ( c = getchar() ) != EOF ) { d = 0; if (c == '\b') { putchar('\\'
\b
时,屏幕上不会显示该按钮
但当我按backspace时,不会显示\b来代替它
您的代码编译得很好,但是退格不会打印到控制台。
与其他格式字符不同,backspace不会显示
原因是,如上所述:
int main()
{
int c, d;
while ( ( c = getchar() ) != EOF )
{
d = 0;
if (c == '\b')
{
putchar('\\');
putchar('b');
d = 1;
}
if (d == 0)
putchar(c);
}
return 0;
}
将输入放入缓冲区,读取文本,然后在按enter键后输出文本。从逻辑上讲,与制表符或空格不同,退格字符不会因此而打印
getchar()
getch()将输出退格;它不读取标准输入,而是在不等待您按enter键的情况下返回输入。getch()也是conio.h头文件的一部分
getch()
运行程序并不需要它,您可以使用“else”代替:
int d
我希望这个答案在某种程度上对您有所帮助。您使用的是什么平台?如果完全删除了d变量,代码会简单得多,只需使用“else”而不是“if(d==0)”就可以了——getchar()使用缓冲输入,您的程序从一开始就不会收到来自终端的退格。顺便说一句,不需要使用额外的变量d,您只需将
if(d==0)
替换为else
。
int d
if(d == 0)