gpt4 book ai didi

c - 如何存储字符 '\b'并使其被c程序文件识别

转载 作者:太空狗 更新时间:2023-10-29 16:55:19 24 4
gpt4 key购买 nike

在看《C程序设计语言》做练习1-10的时候,有道题让我百思不得其解。

据说当我输入退格时,字符是由控制台驱动程序处理的,而不是传递给程序,所以我只能创建一个嵌入退格的文件。但是,无论我直接输入似乎都没有用'\b' 或按 Ctrl + H

当我按下 Ctrl + H 时,屏幕会显示“\b”,但是当我运行程序时,程序似乎仍将其视为两个字符 '\' 和 ' b'。无论我输入什么,当我运行程序时它都不会显示“\backspace”。

我应该怎么做才能让程序将其识别为退格字符?

我的代码如下:

#include <stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF){
if(c=='\t')
printf("\\t");
else if(c=='\\')
printf("\\\\");
else if(c=='\b')
printf("\\backspace");
else
putchar(c);
}
}

最佳答案

我认为问题不在于您的代码,而在于您在文本编辑器中编写退格字符的方式。

你必须使用 special key combination in vim to enter control characters比如退格键。在您的情况下,您应该键入 ctrl + v,然后键入 ctrl + h。这应该会产生一个真正的退格字符。

要查看是否生成了实际的退格字符,可以使用 hexdump:

$ hexdump myfile
00000000 68 65 6c 6c 6f 20 08 77 6f 72 6c 64 |hello .world|
^^

注意 08,这是退格字符(在 C 中,它表示为 \b)。


产生退格字符的另一种方法是通过 C 中的程序简单地编写它:

#include <stdio.h>
int main(void) {
FILE *f = fopen("myfile", "w");
fputs("hello \bworld", f);
fclose(f);
return 0;
}

关于c - 如何存储字符 '\b'并使其被c程序文件识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34868166/

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