如何在objective-c中水平打印值

时间:2014-03-05 22:29:03

标签: objective-c

我尝试按顺序打印数字循环 例如:

  

123

相反,我得到:

  

1
  2
  3个

我怎么能这样做?

void enterNum(int num){
    int x=1;
    for (int i=1; i<num; i++) {
        for (int z=1; z<num; z++) {
            int sum = z*x;
            NSLog(@"%i",sum);
        }
        NSLog(@"\n");
        x++;
    }
}

2 个答案:

答案 0 :(得分:2)

NSLog每次都会在新行中打印,因此您必须在打印之前存储该值。试试这个:

void enterNum(int num){
    int x=1;

    // Added mutable string here
    NSMutableString *logString = [NSMutableString new];

    for (int i=1; i<num; i++) {

        for (int z=1; z<num; z++) {
            int sum = z*x;

            // Moved logging from here and appended value to logString
            [logString appendFormat:@"%i", sum];
        }

        // Log the total string here
        NSLog(@"%@\n", logString);

        // Clear the logString
        [logString setString:@""];
        x++;
   }
}

答案 1 :(得分:0)

您可以使用C打印功能:printf("%i", sum); printf不添加新行。这样做的缺点是它不打印Objective-C对象,即你不能使用%@