gpt4 book ai didi

c - KR - 可视化退格

转载 作者:太空狗 更新时间:2023-10-29 15:32:14 25 4
gpt4 key购买 nike

我遇到了这个 KR 练习 1-10:

Write a program to copy its input to its output, replace each tab by \t, each backspace by \b, and each backslash by \\ .

这是一个非常简单的解决方案:

#include <stdio.h>

int main()
{
int c;
const char TAB = '\t';
const char BACKSPACE = '\b';
const char BACKSLASH = '\\';
while( EOF != ( c = getchar() ) )
{
if( TAB == c )
{
printf( "\\t" );
}
else if( BACKSPACE == c )
{
printf( "\\b" );
}
else if( BACKSLASH == c )
{
printf( "\\\\" );
}
else
{
putchar( c );
}
}

return 0;
}

我发现可视化 Tab\(反斜杠)但不是 Backspace 可以正常工作。控制台似乎没有记住 Backspace?我在 Ubuntu 14.04 上。


This似乎是一个类似的问题,但不太确定它是否相同。

最佳答案

我假设您在终端中运行您的程序,然后键入一些输入。终端通常处于cooked 模式,退格键会立即被解释为请删除前一个字符getchar() 永远不会返回退格键。

如果你想测试你的程序是否正确处理退格键,通过管道将它们输入标准输入,这可以避免使用带有相关 cooking 的终端:

 $ printf 'foo\bbar\n' | ./a.out
foo\bbar

关于c - KR - 可视化退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32285558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com