如何printf始终打印一列的char

时间:2011-05-21 15:09:27

标签: c printf

当我打印一个带有%c格式的字符并且字符不像“\ 0”那样无法打印时,则没有打印输出列。如果我使用%1c则相同。或%1.1c。有没有办法强制printf输出'\ 0'的列?

我正在做一些大型的printf,我希望列匹配。

4 个答案:

答案 0 :(得分:5)

你无法为printf做任何事情。但是您可以使用isprint来过滤printf的参数

printf("%c", (isprint(c) ? c : ' ' ));

答案 1 :(得分:2)

怎么写

printf("%c",(c<' ')?' ':c);

您可以轻松地将其放入#define

答案 2 :(得分:1)

您可以将字符参数更改为

是(c)? c:''

答案 3 :(得分:0)

您可以使用isprint功能检查角色是否可以打印。

if(isprint(c)) {
   printf("%c", c);
}
else {
   print("?");
}

不确定您打算如何处理不可打印的字符。