【发布时间】:2019-06-24 00:41:45
【问题描述】:
我正在尝试编写一个将其输入复制到其输出的程序。我假设如果给定以下字符串:“Hello I am /c”,它应该输出:“Hello \t am \c”我是否正确?
我尝试在线阅读有关 stdio.h 库的信息。
#include <stdio.h>
/* Write a program to copy its input to its output, replacing each tab by \t, each backspace by \b, and each backslash by \\. This makes tabs and backspaces visible in an unambigous way.*/
int main()
{
char c;
while ((c = getchar()) != EOF){
if ((c = getchar()) == '\t'){
putchar('\t');
}
if (c == '\b'){
puts("\b");
}
if (c == '\\'){
puts("\\");
}
putchar(c);
}
}
请帮助我进一步理解这个问题并解释为什么我的代码不起作用。
【问题讨论】:
-
假设您解决了 David 已经发现的问题 - 使用原样的代码,您将 复制 有问题的三个字符,但不会替换它们。还是你想生成 C 风格的转义字符串?
-
可以简单到
int c; while ((c = getchar()) != EOF) putchar (c);