#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t')
printf("\\t");
else if (c == '\b')
printf("\\b");
else if (c == '\\')
printf("\\\\");
else
putchar(c);
}
return 0;
}
在这种情况下,输入
hi how are you\doing
我得到一个输出
hi\thow\tare\tyou\\doing
#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t') {
c = '\b';
printf("\\t");
}
if (c == '\b') {
c = '\b';
printf("\\b");
}
if (c == '\\') {
c = '\b';
printf("\\\\");
}
putchar(c);
}
return 0;
}
当我使用输入运行此程序时
hi how are you\doing
(大空间是制表符)
我得到这个输出
hi\t\how\t\are\t\you\doing
代码:
#include <stdio.h>
int main() {
int c;
c = '\b';
putchar(c);
return 0;
}
运行这个,我什么也得不到。没有输出。返回到 shell 提示符。
更准确地说,在第一个程序中,我得到了我想要的输出,但是在第二个程序中,我得到了反斜杠,\t
但不是在\
我期望\\\
的输出之后,看看 how \t
become \t\
,是 '\b' 导致它? 如果是,它是如何工作的?但如果是这样,为什么在第三个程序中不会发生同样的情况?
在 rasbian 默认 gcc 编译器和 windows 的 mingw msys-gcc 包上运行这个。