2

さて、私は次のコードを持っています:

{
    int alfa = CC_RADIANS_TO_DEGREES(atan2(normalized.y, -normalized.x)) + 180;
    NSString * counting = [NSString stringWithFormat:@"fdfg%d.png", alfa];
}

int alfa0との間の数値をもたらし360ます。

私が達成しようとしているのは、counting文字列値が画像ファイルと等しいことです.360個の画像ファイルがあり、すべてこの形式"fdfg0000.png" "fdfg0024.png" "fdfg0360.pngで、0から360に増加します...

ファイル名の先頭にあるすべてのゼロは、ファイルを作成するプログラムによって既に出力されているため、%dオペレーターは値を読み取っていません。それらを変更する機会はありません。360 ファイルの名前を手動でこの形式に変更しました"fdfg1.png" "fdfg24.png" "fdfg340.png": d は正しく読み取ります。

私の質問は、元のファイルに演算子関数に含まれる 4 つのゼロをすべて読み取る方法はありますか?

または、360 ファイルの名前を自動的に変更する方法を知っている人はいますか?

4

2 に答える 2

5

はい、できます: に置き換え%d%04d、先行ゼロを挿入し、合計桁数を 4 に等しくします。

NSString * counting =[NSString stringWithFormat:@"fdfg%04d.png", alfa];
//                                                     ^^
//                                                     ||
//                                  Pad with zeros-----+|
//                          Total number of digits------+

フォーマット指定子の詳細については、 のドキュメントを参照してください。 のprintfフォーマット指定子はstringWithFormat:、ほとんどの場合、それと互換性があります。

于 2013-04-22T16:02:44.000 に答える
1

私の質問は、元のファイルに演算子関数に含まれる 4 つのゼロをすべて読み取る方法はありますか?

%04d数値を先行ゼロで 4 桁まで埋めるためのフォーマット指定子として使用します。

NSString * counting =[NSString stringWithFormat:@"fdfg%04d.png", alfa];

printf()NSString (および NSLog など) で使用される書式指定子は、C でや などの関数で使用される指定子のセットとほとんど同じでscanf()あるため、目的の結果を得るためにそれらを使用する方法について、ネット上に多くのアドバイスがあります。主な違いは、Objective-C が%@Objective-C オブジェクトの書式指定子として使用することです。

于 2013-04-22T16:04:23.997 に答える