是否可以使用函数来检测非打印字符isctrl()
,并使用printf和%C说明符将它们打印为'\ n'例如?是否可以使用%C说明符打印非打印字符?
或者我应该为每个控制字符编写if
,例如printf("\\n")
..?
好的,感谢下面所有的人 - 这是不可能的,你必须指定每种情况。例如:
if (isctrl(char))// WRONG
printf("%c", char);
if (char == '\n')//RIGHT, or using switch.
printf("\\n");
那么,它可能更好地使用['isprint'(HTTP:// EN .cppreference.com/w/c/string/byte/isprint)来检测可打印字符,而不是使用可能返回误报的'isctrl'(因为有非打印字符不是控制字符)。 –
@nhahtdh它确实有道理 - 尽管我不觉得它有用,也就是说。 OP希望在屏幕上看到'\ n',而不是换行符......如果没有内置或其他预先存在的解决方案,我会推荐一个'switch-case'结构,它比无尽的如果 - 其他... – ppeterka
@ppeterka:措辞让我有点困惑。阅读您的评论后,这是有道理的。 – nhahtdh