Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符: %@:字符串占位符 %d:整型 %ld:长整型 %f:浮点型 %c:char类型 %%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的地方,看了一下别人是怎么解决这个问题的
[cpp] view plain copy
print? BOOL studyBool = YES;
NSLog(@"打印BOOL型数据%@",studyBool?@"YES":@"NO");//打印BOOL型数据YES
NSLog(@"打印BOOL型数据%d",studyBool);//打印BOOL型数据1 BOOL alsoBool = NO;
NSLog(@"打印BOOL型数据%@",alsoBool?@"YES":@"NO");//打印BOOL型数据NO
NSLog(@"打印BOOL型数据%d",alsoBool);//打印BOOL型数据0 详细介绍:********************************************************** %@: Objective-C对象,印有字符串返回descriptionWithLocale:如果于的话,或描述相反.CFTypeRef工作对象,返回的结果的CFCopyDescription功能.(这个翻译有问题建议按照自己的理解方式理解)。 %%: 为'%'字符; %d,%D,%i: 为32位整型数(int); %u,%U: 为32位无符号整型数(unsigned int); %hi: 为有符号的16位整型数(short); %hu: 为无符号的16位整型数(unsigned shord); %qi: 为有符号的64位整型数(long long); %qu: 为无符号的64位整型数(unsigned long long); %x: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,小写a-f; %X: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,大写A-F; %qx: 为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,小写a-f; %qX: 为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,大写A-F; %o,%O: 为32位的无符号整数(unsigned int),打印八进制数; %f: 为64位的浮点数(double); %e: 为64位的浮点数(double),打印使用小写字母e,科学计数法介绍了指数的增大而减小; %E: 为64位的浮点数(double),打印科学符号使用一个大写E介绍指数的增大而减小; %g: 为64位的浮点数(double),用%e的方式打印指数,如果指数小于4或者大于等于精度,那么%f的风格就会有不同体现; %G: 为64位的浮点数(double),用%E的方式打印指数,如果指数小于4或者大于等于精度,那么%f的风格就会有不同体现; %c: 为8位的无符号字符%c(unsigned char),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\udddd,在这里d是一个数字; %C: 为16位Unicode字符%C(unichar),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\\udddd,在这里d是一个数字; %s: 对于无符号字符数组空终止,%s系统中解释其输入编码,而不是别的,如utf-; %S: 空终止一系列的16位Unicode字符; %p: 空指针(无效*),打印十六进制的数字0-9和小写a-f,前缀为0x; %L: 在明确规定的长度下,进行修正,下面的一批数据a,A,e,E,f,F,g,G应用于双精度长整型的参数; %a: 为64位的浮点数(double),按照科学计数法打印采用0x和一个十六进制数字前使用小写小数点p来介绍指数的增大而减小; %A: 为64位的浮点数(double),按照科学计数法打印采用0X和一个十六进制数字前使用大写字母小数点P界扫指数的增大而减小; %F: 为64位的浮点数(double),按照十进制表示法进行打印; %z: 修改说明在%z长度以下d,i,o,u,x,X适用于某一指定类型的转换或者适用于一定尺寸的整数类型的参数; %t: 修改说明在%t长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数; %j: 修改说明在%j长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数。 英文文档 格式定义
The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table . Note that you can also use the “n$” positional specifiers such as %$@ %$s. For more details, see the IEEE printf specification. You can also use these format specifiers with the NSLog function.
Table Format specifiers supported by the NSString formatting methods and CFString formatting functions 定义 说明
%@ Objective-C object, printed as the string returned by descriptionWithLocale: if available, or description otherwise. Also works with CFTypeRef objects, returning the result of the CFCopyDescription function.
%% ‘%’ character
%d, %D, %i Signed -bit integer (int)
%u, %U Unsigned -bit integer (unsigned int)
%hi Signed -bit integer (short)
%hu Unsigned -bit integer (unsigned short)
%qi Signed -bit integer (long long)
%qu Unsigned -bit integer (unsigned long long)
%x Unsigned -bit integer (unsigned int), printed in hexadecimal using the digits – and lowercase a–f
%X Unsigned -bit integer (unsigned int), printed in hexadecimal using the digits – and uppercase A–F
%qx Unsigned -bit integer (unsigned long long), printed in hexadecimal using the digits – and lowercase a–f
%qX Unsigned -bit integer (unsigned long long), printed in hexadecimal using the digits – and uppercase A–F
%o, %O Unsigned -bit integer (unsigned int), printed in octal
%f -bit floating-point number (double)
%e -bit floating-point number (double), printed in scientific notation using a lowercase e to introduce the exponent
%E -bit floating-point number (double), printed in scientific notation using an uppercase E to introduce the exponent
%g -bit floating-point number (double), printed in the style of %e if the exponent is less than – or greater than or equal to the precision, in the style of %f otherwise
%G -bit floating-point number (double), printed in the style of %E if the exponent is less than – or greater than or equal to the precision, in the style of %f otherwise
%c -bit unsigned character (unsigned char), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit
%C -bit Unicode character (unichar), printed by NSLog() as an ASCII character, or, if not an ASCII character, in the octal format \\ddd or the Unicode hexadecimal format \\udddd, where d is a digit
%s Null-terminated array of -bit unsigned characters. %s interprets its input in the system encoding rather than, for example, UTF-.
%S Null-terminated array of -bit Unicode characters
%p Void pointer (void *), printed in hexadecimal with the digits – and lowercase a–f, with a leading 0x
%L Length modifier specifying that a following a, A, e, E, f, F, g, or G conversion specifier applies to a long double argument
%a -bit floating-point number (double), printed in scientific notation with a leading 0x and one hexadecimal digit before the decimal point using a lowercase p to introduce the exponent
%A -bit floating-point number (double), printed in scientific notation with a leading 0X and one hexadecimal digit before the decimal point using a uppercase P to introduce the exponent
%F -bit floating-point number (double), printed in decimal notation
%z Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a size_t or the corresponding signed integer type argument
%t Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a ptrdiff_t or the corresponding unsigned integer type argument
%j Length modifier specifying that a following d, i, o, u, x, or X conversion specifier applies to a intmax_t or uintmax_t argument 平台依赖
Mac OS X uses several data types—NSInteger, NSUInteger,CGFloat, and CFIndex—to provide a consistent means of representing values in - and -bit environments. In a -bit environment, NSInteger and NSUInteger are defined as int and unsigned int, respectively. In -bit environments, NSInteger and NSUInteger are defined as long and unsigned long, respectively. To avoid the need to use different printf-style type specifiers depending on the platform, you can use the specifiers shown in Table . Note that in some cases you may have to cast the value.
Table Format specifiers for data types 类型 定义 建议
NSInteger %ld or %lx Cast the value to long
NSUInteger %lu or %lx Cast the value to unsigned long
CGFloat %f or %g %f works for floats and doubles when formatting; but see below warning when scanning
CFIndex %ld or %lx The same as NSInteger
pointer %p %p adds 0x to the beginning of the output. If you don’t want that, use %lx and cast to long.
long long %lld or %llx long long is -bit on both - and -bit platforms
unsigned long long %llu or %llx unsigned long long is -bit on both - and -bit platforms The following example illustrates the use of %ld to format an NSInteger and the use of a cast. NSInteger i = ;
printf("%ld\n", (long)i); In addition to the considerations mentioned in Table , there is one extra case with scanning: you must distinguish the types for float and double. You should use %f for float, %lf for double. If you need to use scanf (or a variant thereof) with CGFloat, switch to double instead, and copy the double to CGFloat. CGFloat imageWidth;
double tmp;
sscanf (str, "%lf", &tmp);
imageWidth = tmp; It is important to remember that %lf does not represent CGFloat correctly on either - or -bit platforms. This is unlike %ld, which works for long in all cases.
Objective-C中的占位符,打印BOOL类型数据的更多相关文章
- Java C# C语言中的占位符
一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...
- 安卓编程资源文件string中对占位符的使用详解
这里将为你详细介绍占位符的使用,将其学以致用,可以达到简化布局文件,减少字符串资源量. 1.在资源文件中的使用. 打开资源文件中的strings.xml文件,进行编辑.如下图所示: 图 1.0 2. ...
- 【占位符替换】替换String中的占位符标志位{placeholder}
概述 占位符替换, 占位符表示为:{placeholder}; 示例:替换如下{xxx}占位符中的内容 "名字:{name},年龄:{age},学校:{school}" 提供了两种 ...
- Java替换字符串中的占位符
在开发中,会有动态配置字符串其中的某些字符,如何使用字符中的占位符,并且在代码动态替换占位符实现动态配置字符串! 1.定义字符串时,再string文件添加字符串: 注意!记得要在字符文件中加上这些: ...
- 使用MessageFormat替换字符中的占位符
使用String.format可以实现字符串的格式化功能,即将后面参数中的值替换掉format中的%s,%d这些值.但MessageFormat更为强大,不用管传入值是字符串还是数字,使用占位符即可. ...
- hibernate查询语句hql中的占位符?参数与命名参数:name设值方式搞混
先贴出异常 Struts has detected an unhandled exception: Messages: Position beyond number of declared ordin ...
- C# 中的占位符本质
占位符本质 1.占位符是相对于String字符串类型而言的. 2.占位符其实就是调用String.Format()方法.把指定的变量拼接到定义好的字符串模板中组成新的字符串.
- spring 的 PropertyPlaceholderConfigurer读取的属性怎么访问 (java访问方式,不是xml中的占位符哦)及此类的应用
一.1.占位符的应用:(@Autowired注解方式,不需要建立set与get方法了,xml注入也不需要写了) http://www.cnblogs.com/susuyu/archive/2012/0 ...
- C#中的占位符
当我们需要在屏幕上输出一句话的时候,如果不断的使用+来连接各个字符串,一是容易出错,二是代码显示的非常乱.这时候,占位符就能够发挥作用! 占位符: string name="张三" ...
随机推荐
- 使用 DiskMaker X 轻松制作 Yosemite 安装 U 盘(引)
使用 DiskMaker X 轻松制作 Yosemite 安装 U 盘 由于帮人在MacBook上装Windows, 用pe格式化了一下分出来的Windows分区, 搞得Mac系统也瘫掉了, 无奈之下 ...
- 还是编码 汉字(GB2312和GBK)的ASCII码对照表
GB2312和GBK每一个汉字由2个字节组成,这2个字节的ASCII码大小分别是:gb2312: high8 = 0xa1-->0xfe (161 - 254)low8 = 0xa1--> ...
- easyui源码翻译1.32--Window(窗口)
前言 扩展自$.fn.panel.defaults.使用$.fn.window.defaults重写默认值对象.下载该插件翻译源码 窗口控件是一个浮动和可拖拽的面板可以用作应用程序窗口.默认情况下,窗 ...
- 134. Gas Station
题目: There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. ...
- Hibernate的优缺点
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDB ...
- 【HDOJ】1669 Jamie's Contact Groups
二分+二分图多重匹配. /* 1669 */ #include <iostream> #include <string> #include <map> #inclu ...
- poj2817WordStack(状压)
链接 与上题类似 预处理一下各字符串之间最大的相同字符数就可以 注意dp要初始为负无穷 #include <iostream> #include<cstdio> #inclu ...
- bzoj3514
好题+数据结构神题+感人肺腑pascal被卡系列,我下面的代码几乎写到最优可怎耐bzoj上pascal开的是O1,c++开的是O2,这怎么可能跑得过!!!还是说说方法吧,这是一道算贡献的好题,因为我们 ...
- 【转】Ubuntu下配置支持Windows访问的samba共享
原文网址:http://blog.csdn.net/i_chips/article/details/19191957 一.安装Ubuntu samba服务器 $ sudo apt-get instal ...
- 【转】Cannot find -ltinfo when compiling android 4.0.3
原文网址:http://stackoverflow.com/questions/9055005/cannot-find-ltinfo-when-compiling-android-4-0-3 up v ...