Objectiv-C学习笔记-NSLog中左对齐与右对齐

其实这是C中的特性

想要在Terminal中打印出如图案

===============================
|                             |
| Siemen Liu                  |
| [email protected]         |
|                             |
| O                         O |
===============================

其中带有Siemen Liu这行与[email protected]这行是不定长度的变量,输出时还要保持右侧竖线与其他行保持对齐
NSLog("| %-28s |", [@"Siemen Liu" UTF8String]);
NSLog("| %-28s |", [@"[email protected]" UTF8String])

其中%-28s中的28代表输出时始终输出28个字符长度,如果内容不足则用空格代替。

28前面还有一个“-”号,可以理解为左对齐显示,如果不带这个“-”号结果就会是这样

===============================
|                             |
|                  Siemen Liu |
|         [email protected] |
|                             |
| O                         O |
===============================

以右对齐显示

还可以看到在输出时把NSString转换成了UTF8的C格式的字符串,这是因为使用%-28@来直接显示NSString是无法到达哦目的,%@会忽略中间数字和符号。所以需要转换下。

那么其实可以说对其输出方面,对象都是不行的,要使用基本类型才可以,整数型可以用%-28i浮点型可以用%-28g等。

update20120813->有关乱码的问题
如果字符串换成中文这样输出就会有乱码问题
如果要使用左右对齐功能暂时不知道有什么方法可以解决乱码问题
但是直接通过NSLog("%@", @"小明");是不会出现乱码但也无法使用对齐了

你可能感兴趣的:(Objective-C)