linux bool变量,Objective-C中的占位符,打印BOOL类型数据

常用的一些占位符:

%@:字符串占位符

%d:整型

%ld:长整型

%f:浮点型

%c:char类型

%%:%的占位符

尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的地方,看了一下别人是怎么解决这个问题的

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-8;

%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 1. Note that you can also use the “n$” positional specifiers such as %1$@ %2$s. For more details, see the IEEE printf specification. You can also use these format specifiers with the NSLog function.

Table 1 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 32-bit integer (int)

%u, %U

Unsigned 32-bit integer (unsigned int)

%hi

Signed 16-bit integer (short)

%hu

Unsigned 16-bit integer (unsigned short)

%qi

Signed 64-bit integer (long long)

%qu

Unsigned 64-bit integer (unsigned long long)

%x

Unsigned 32-bit integer (unsigned int), printed in hexadecimal using the digits 0–9 and lowercase a–f

%X

Unsigned 32-bit integer (unsigned int), printed in hexadecimal using the digits 0–9 and uppercase A–F

%qx

Unsigned 64-bit integer (unsigned long long), printed in hexadecimal using the digits 0–9 and lowercase a–f

%qX

Unsigned 64-bit integer (unsigned long long), printed in hexadecimal using the digits 0–9 and uppercase A–F

%o, %O

Unsigned 32-bit integer (unsigned int), printed in octal

%f

64-bit floating-point number (double)

%e

64-bit floating-point number (double), printed in scientific notation using a lowercase e to introduce the exponent

%E

64-bit floating-point number (double), printed in scientific notation using an uppercase E to introduce the exponent

%g

64-bit floating-point number (double), printed in the style of %e if the exponent is less than –4 or greater than or equal to the precision, in the style of %f otherwise

%G

64-bit floating-point number (double), printed in the style of %E if the exponent is less than –4 or greater than or equal to the precision, in the style of %f otherwise

%c

8-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

16-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 8-bit unsigned characters. %s interprets its input in the system encoding rather than, for example, UTF-8.

%S

Null-terminated array of 16-bit Unicode characters

%p

Void pointer (void *), printed in hexadecimal with the digits 0–9 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

64-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

64-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

64-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 32- and 64-bit environments. In a 32-bit environment, NSInteger and NSUInteger are defined as int and unsigned int, respectively. In 64-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 2. Note that in some cases you may have to cast the value.

Table 2 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 64-bit on both 32- and 64-bit platforms

unsigned long long

%llu or %llx

unsigned long long is 64-bit on both 32- and 64-bit platforms

The following example illustrates the use of %ld to format an NSInteger and the use of a cast.

1

2

NSInteger i = 42;

printf("%ld\n", (long)i);

In addition to the considerations mentioned in Table 2, 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.

1

2

3

4

CGFloat imageWidth;

double tmp;

sscanf (str, "%lf", &tmp);

imageWidth =tmp;

It is important to remember that %lf does not represent CGFloat correctly on either 32- or 64-bit platforms. This is unlike %ld, which works for long in all cases.0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言gets n,c语言中gets ,getschar 和fgets 的用法及三者之间的差别

满意答案wkmpbg846推荐于 2018.02.27采纳率:45% 等级:8已帮助:362人gets():原型:char *gets(char *buffer) ;功能:从stdlin中获取获取字符串一直到换行符或者遇到EOF为止,但换行符不被录取,会将换行符替换成‘\0’来…

android中svn插件安装,AndroidSDK安装SVN插件问题解决

工具版本信息:Eclipse4.2ADT23.0Subclipse1.10,插件安装地址:http://subclipse.tigris.org/update_1.10.x问题一报错信息如下:Cannot complete the install because one or more required items could not be found.Software being installed: Subversion Revision Graph 1.1.1…

鸿蒙系统的变化,鸿蒙系统没变化的背后

原标题:鸿蒙系统没变化的背后鸿蒙系统发布以后被很多人吐槽,说是没什么变化,和之前体验的安卓系统简直一模一样,真的失望至极。其实,鸿蒙系统还是从底层做出了改变,只不过没有变了界面和运行方式而已。那么…

三星s2 硬刷Android 8,三星T710(GALAXY Tab S2 8.0)一键救砖教程,轻松刷回官方系统...

三星T710(GALAXY Tab S2 8.0)手机变砖了怎么办?对于经常刷机的安卓玩家来说,碰到刷机失败导致三星T710(GALAXY Tab S2 8.0)手机无法启动甚至无法进入recovery都是在所难免的事,这个时候我们就需要用到奇兔线刷大师线刷救砖功能了,它能轻松实…

鸿蒙工业互联网,工业互联网 3D 展示平台

原标题:工业互联网 3D 展示平台项目简介产业园区占地约为 158.46 亩,现有生产车间两栋、研发楼一栋、检测楼一栋、食堂及倒班楼一栋、废品库一栋、门卫室两处、综合站房一处。主要从事电缆、电线的生产与加工。产业园区综合管理平台项目开发内容复杂&…

lean软件Android有吗,leanchat-android

LeanChat Android 客户端简介LeanChat 是 LeanCloud 实时通信 组件的 Demo,通过该应用你可以学习和了解 LeanCloud 实时通信功能。效果截图Leanchat 项目构成如果你从 github clone 速度很慢,可以从 这里 下载项目源码压缩包。部署创建应用注册并登录 Le…

华为系统10.0是鸿蒙吗,暂时忘记鸿蒙!华为EMUI 10.0发布时间确认:这才是主角...

原标题:暂时忘记鸿蒙!华为EMUI 10.0发布时间确认:这才是主角华为鸿蒙系统由于顶着“自研”的光环,自曝光以来便受到科技圈的追捧,虽并未推出但已经有“众星捧月”的迹象。媒体追逐鸿蒙系统自然是为了热度和流量&#x…

a4纸在html的像素,打印常识:A4纸张在显示器上应该要多少像素?

A4纸的尺寸是210mm*297mm,也就是21.0cm*29.7cm,而1英寸2.54cm,如果屏幕DPI分辨率为72像素/英寸,换算一下:相当于1cm可呈现 (72px/2.54cm) 28.34px下面是一些常用分辨率下A4纸在屏幕上的像素尺寸:分辨率是7…

wether.html5.qq.com,人教版英语九年级全一册Unit 1单元测试卷及参考答案解析(含听力...

UNIT 1 达标测试卷时间:120分钟 满分:150分第一卷 听力部分(30分)一、关键词语选择(共5小题;每小题1分,满分5分)1. A. note B.nose C. notice2. A. repair B. report C.repeat3. A. widely B. quickly C.wisely4.A. screen B.s…

世界上覆盖范围最广的计算机网络是 ( ),世界上覆盖范围最广的计算机网络是()。...

摘要:部会天翼自动格将俱乐取消员资客户,世界上覆下列情况哪些出现时。围最包单包工总承责任单位对分安全程的承担位和分包生产。计算机网包分政基作业工分建筑础设程施为(劳务和市)和房屋分包施工。...部会天翼自动格将俱乐取消员资客户,世界…

CAM是利用计算机,利用DroidCam将手机摄像头打造成计算机摄像头

利用DroidCam将手机摄像头打造成电脑摄像头1.目的现在许多同学的电脑上没有摄像头,但是随着智能手机的普及,大多数同学都有带摄像头的手机。而智能手机的摄像头比电脑的usb摄像头的效果好很多。那可不可以把手机摄像头用在电脑上来网络聊天呢&#xff0c…

电大计算机应用技术基础视频,电大形成性测评-计算机应用技术基础01

电大形成性测评-计算机应用技术基础01 (7页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!15.9 积分01任务-在线作业试卷总分:100 测试时间:-- 单项选择题 …

北大计算机博进高校,他是北大第一位博士,留校任教却连做三件“傻事”,博导都没评上...

自北大1898年创办至今,早已度过了风雨百年,一路发展、创造辉煌,令人慨叹不已。身为我国名校的门面招牌之一,北大底蕴深厚、实力强劲,校园环境优美、师资力量雄厚,不知是多少学子可望而不可及的理想学府。在…

计算机打印过的文件在哪找到,请问如何在电脑里查找已经打印过的文件

满意答案苏mmkk2013.07.06采纳率:45% 等级:11已帮助:20600人如果你的系统是XP 的话查找电脑名称:在桌面“我的电脑”上点右键。第二个选项卡上有“计算机名”上面显示的有完整的计算机名,如果想更改的话&#xff0c…

tomcat服务器运行环境,win7怎么配置Tomcat服务器环境|win7系统配置Tomcat服务器环境的方法...

‍‍许多用户询问说win7旗舰版系统怎么配置Tomcat服务器环境?tomcat是什么?它一款轻量级免费开源的Web服务器,我们再使用tomcat时,最好配置一下环境变量。很多新手用户不知道怎么配置Tomcat服务器环境,安装配置Tomcat的方法和java有些相同&am…

心脏遥测监控系统服务器,基于ARM7的心电采集与远程传输系统设计

该系统设计的监护模块与医院内心电监护中心的心电实时监控服务器都工作于客户/服务器模式下。在工作状态下,心电数据接收转发器客户端应用程序,首先初始化以太网接口,然后主动与医院内心电实时监控服务器建立连接;连接成功后&…

linux装服务器系统,linux服务器系统安装

linux服务器系统安装 内容精选换一换安装完操作系统后的临时云服务器需要进行相关配置,并安装原生的XEN和KVM驱动,才能保证后续创建的云服务器正常使用。该任务指导用户完成Linux云服务器的相关配置与驱动安装,从而创建为Linux系统盘镜像。配…

服务器bios修改uefi,服务器 uefi bios设置

服务器 uefi bios设置 内容精选换一换对于不同的硬件设备,通过在BIOS中设置一些高级选项,可以有效提升服务器性能。服务器上的SMMU一般用来完成设备的地址转换,并且可以实现设备隔离,在虚拟化中很实用,但是在物理机测试…

越狱装源未能连接到服务器,科普cydia无法加载源地址插件安装错误解决方法及Cydia怎么备份shsh...

苹果越狱是不少iPhone用户的乐趣,而cydia也是苹果越狱的标志,不过有不少小伙伴却发现自己的,而且也会提示插件安装错误等,那么要怎么解决这个问题呢,不妨随小编一起来研究一下吧。关于cydia无法正常加载插件列表?加载…

思科虚拟机配置dhpc服务器,思科模拟器配置DHCP

第一步,在路由器连接PC0的那个端口f6/0配置ip为172.16.14.1,连接交换机的端口f0/0配置为172.16.13.1,连接服务器的端口f1/0配置为172.16.10.2。上代码:int f6/0ip address 172.16.14.1 255.255.255.0int f0/0ip address 172.16.13.1 255.255.…