好吧,我有以下代码:
{
int alfa = CC_RADIANS_TO_DEGREES(atan2(normalized.y, -normalized.x)) + 180;
NSString * counting = [NSString stringWithFormat:@"fdfg%d.png", alfa];
}
int alfa
会在0
和360
之间加上一个数字。
我想要实现的是counting
字符串值等于图像文件,我有360个图像文件,所有格式都是"fdfg0000.png" "fdfg0024.png" "fdfg0360.png
“,从0增加到360,等等上...
%d
运算符没有读取值,因为引导文件名的所有零都已由创建它们的程序输出,而没有机会修改它们,我已手动将360文件重命名为此格式:"fdfg1.png"
"fdfg24.png"
"fdfg340.png"
,这就是%d正确读取的格式。
所以我的问题是,无论如何都要读取原始文件在运算符函数中包含的所有四个零点?
或者有人知道自动重命名360文件的方法吗?
答案 0 :(得分:5)
是的,您可以这样做:将%d
替换为%04d
以插入前导零并使总位数等于4:
NSString * counting =[NSString stringWithFormat:@"fdfg%04d.png", alfa];
// ^^
// ||
// Pad with zeros-----+|
// Total number of digits------+
有关格式说明符的更多信息,请阅读printf
的文档:stringWithFormat:
的格式说明符与其大部分兼容。
答案 1 :(得分:1)
所以我的问题是,无论如何都要阅读所有的四个零 原始文件包含在运算符函数中?
使用%04d
作为格式说明符,将数字填充到带有前导零的4个位置:
NSString * counting =[NSString stringWithFormat:@"fdfg%04d.png", alfa];
NSString(和NSLog等)使用的格式说明符几乎与C中使用的printf()
和scanf()
等函数的说明符相同,所以网上有很多建议关于如何使用它们来达到预期的效果。主要区别在于Objective-C使用%@
作为Objective-C对象的格式说明符。