C int to char不使用char格式打印出来

时间:2016-04-05 00:21:38

标签: c

我正在尝试使用char格式说明符打印出整数的数字。

这就是我目前所拥有的

    //counter = arbitrary int
    while (counter > 0) {
            char c = (char)(counter % 10);
            printf("%c", c);
            counter/=10;
        }

这只是打印出空白但如果我将格式说明符更改为int但保留类型强制转换,它将打印正确的值。像这样的东西

   char c = (char)(counter % 10);
   printf("%d", c);

当我使用char格式说明符时,为什么不打印?

2 个答案:

答案 0 :(得分:1)

%c用于打印字符,而不是数字。如果要打印数字,应该使用%d。它适用于char的原因是因为char在将其作为参数传递给可变参数函数时会隐式提升为int

如果c包含'A',并且您使用%c对其进行格式化,则会得到字母“A”,但如果您使用%d,则会得到%c它的整数值,例如65。

如果您绝对必须使用'0',则可以在打印前将printf("%c", c + '0'); 的值添加到字符中,例如L

import {
  Animated,
  Easing
} from 'react-native';

...

Animated.timing(this.state.scale, {
  toValue: 1.3,
  duration: 2000,
  easing: Easing.linear
})

答案 1 :(得分:0)

%c可以在此上下文中用作printf("%c",c+'0'),其中+'0'会将其转换为等效于c的整数。