我正在编写一个C程序,如果用户输入反斜杠,转义序列(\\)将打印在控制台上。但是,当我运行代码时,尽管我在fprintf
语句中包括了4个反斜杠,但仅打印了一个反斜杠。下面是我的C代码:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int character;
while((character = getchar()) != EOF) {
if (isprint(character)) {
putchar(character);
}
else {
switch (character){
case '\\':
printf("\\\\\n");
break;
}
}
}
return(0);
}
您可以尝试将isprint()
呼叫替换为isalnum()
。这将提供您期望的结果,即在输入单个\时打印两个\。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int character;
while((character = getchar()) != EOF) {
if (isalnum(character)) {
putchar(character);
}
else {
switch (character){
case '\\':
printf("\\\\\n");
break;
}
}
}
return(0);
}
输出:
test input \
test input \\