我正在尝试使用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格式说明符时,为什么不打印?
答案 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
的整数。