【发布时间】:2014-07-08 13:57:16
【问题描述】:
#include <stdio.h>
main ()
{
int c;
while ((c = getchar()) != EOF ) {
if (c == '\t') {
while ((c = getchar()) == '\t');
putchar ('\\t');
}
else (c == '\b') {
while ((c = getchar()) == '\b');
putchar ("\\b");
}
else (c == '\\' ) {
while ((c = getchar()) == '\\');
putchar ("\\");
}
putchar(c);
}
}
尝试编译时出现以下错误:
cpytbb.c:在函数'main'中:
cpytbb.c:8:14:警告:多字符字符常量 [-Wmultichar]
cpytbb.c:10:20: 错误:预期‘;’在‘{’标记之前
请注意,第二个错误可能与问题无关。我是新手,很可能在我的代码中犯了一些错误。
如果需要,我正在使用 gcc。
编辑:我正在尝试将 \t \b 和 \ 作为简单文本“打印”出来。例如,如果我点击“退格”,它将打印 \b
【问题讨论】:
-
将
'\\t'替换为'\t',将'\\b'替换为'\b'。还要确保你给putchar()一个char参数而不是整个字符串... -
另外,
putchar()采用 int,而不是 char*:putchar ("\\b")'\b'(单引号,而不是双引号)。 -
好的,谢谢两位。 goldilocks 这是否意味着放置双引号会将 int 更改为 char* (我什至不知道 char* 是什么,用谷歌搜索它)
-
putchar ('\\t');是打算打印一个反斜杠,后跟一个't',还是只是一个制表符? -
它的目的是将\t打印为字符串而不是制表符
标签: c gcc compiler-construction character