萌新如何使用printf函数?

作者的话

如果你搜索 输入输出函数,那么你会看到输入输出流、Turbo标准库、标准输出端、stdout什么什么乱七八糟的,作为一个萌新,哪懂这些?

本文介绍萌新在前期的学习中,常用的输入输出函数及其功能~

** *

printf介绍

函数原型: int printf(参数1,参数2,参数3,参数4,参数~,参数n)

这就是对于我们萌新来说的函数原型,有许许多多的参数,返回值是int类型。

参数1: 参数1是一个 字符串 ,printf会打印这个字符串,你可以直接用双引号引着放进去,也可以存在一个字符数组里,然后把数组的首地址放进去,像这样:

int main()

{

    printf("太阳出来我晒太阳!!!");



    char str[] = "月亮出来我晒月亮喽~";

    printf(str);



    return 0;

}

运行效果图:

可以看到,两个字符串都被打印了。

但是,我们可能要打印我们自己也不知道是多少的变量,这要怎么办呢?

这时候,就需要在参数1的str中加入一些控制符,即"%"加 一个或两个字母 ,在 str中每多了一个"%"加字母的组合,后面就要多一个参数 ,至于这个字母,根据输出变量的类型不同,字母也会不同。

常见字母请看以下表格:

%字母 | 对应变量类型

-------- | -----|

%d | signed int

%u | unsigned int

%o | 八进制unsigned int

%x(%X)|十六进制unsigned int

%c|char

%s|string(字符串)

%p|地址(指针)

%f|float

%lf|double

%e(%E)|以指数表示的浮点型

注意: 不是说某种类型只能用某种控制符输出,而且会把你一会放在后面的参数,当成这种控制符对应的类型输出。

比如说: 你用%u输出了一个signed型的数,那么计算机在读取这个数时,会把它当成unsigned来读取。

为了应对各种不同的情况,在"%"和字母之间,会 选择性地 加入三个参数,这三个参数分别叫做 标识、宽度、.精度

其中, 标识必须紧挨在"%"的右边宽度紧挨在标识的右边.精度在宽度和字母的中间 (精度前面有一个小小的点,这不是博主手误哦,真正存在的),像这样:

int main()

{

    printf("%标识宽度.精度d" );

    return 0;

}

宽度介绍

  • 宽度可以是一个数,也可以是一个星号" *"。
  • 如果是一个数,假设是5,那么就代表接下来输出的这个数的宽度至少有5,像这样:
int main()

{

    int a = 12;

    printf("%5d",a );

    return 0;

}

效果图:

可以看到,被灰色框起来的,就是宽度为5。

那么星号,就是为了应对不知道该输出多宽的数据,以一个参数变量当作数据的宽度,如果写了星号,在后面加入变量时要多一个,而且必须写在第一位,像这样:

int main()

{

    int a = 12;

    printf("%  *d",5,a );

    printf("%  *d", 10, a);

    return 0;

}

效果图:

精度介绍

  • 精度要紧挨在字母的左边,而且精度的左边还要加上一个点。
  • 在这个点的右边,你可以写 一个数字或者一个星号 ,没错,和宽度一样。
  • 顾名思义,是用来控制 输出数据的精度 的,只是对于不同的控制符,有不同的效果。

PS:刚才说过,控制符就是一个%号加上一或两个字母,不要忘了哦。

详细效果:

1,对于%d(signed int)、%u(unsigned int)、%o(八进制unsigned int)、%x(十六进制unsigned int),这四个来说,是表示 数据输出的最小位数 ,像这样:

int main()

{

    int a = 12;

    printf("%.  *d", 4, a);

    return 0;

}

效果图:

因为精度是4,所以至少输出四位,不足则前导0补充。

精度不会缩小一个整数的输出,像这样:

int main()

{

    int a = 12345;

    printf("%.  *d", 4, a);

    return 0;

}

效果图:

2,对于%s(string)来说, 精度的作用是控制输出的最大字符数 ,像这样:

int main()

{

    char arr[]="123456";

    int tmp = printf("%.3s",arr);

    return 0;

}

效果图:

标识介绍

  • 接下来我们介绍最复杂的标识。
  • 标识写在紧挨在%的右边,可以写“-”、“+”、“#”、0,即 减号,加号,井号,还有数字0

减号

和宽度配合使用,表示左对齐,如果不加减号,默认右对齐,像这样:

int main()

{

    int a = 42;

    printf("%10d",a);



    printf("%-10d", a);

    return 0;

}

打印结果如下:

可见,两者宽度都是10,但一个向左对齐,一个向右对齐。

加号

写上加号,即使是正数,也会显示一个"+",像这样:

int main()

{

    int a = 42;

    printf("%+d",a);

    return 0;

}

效果图:

如果不写这个加号,只有负数会显示负号,正数不显示加号。

井号

众所周知(即使是萌新也应该知道), 八进制要前导0,十六进制前导0x,二进制前导0b ,井号的作用就是 显示八进制和十六进制的前导标志 ,像这样:

int main()

{

    int a = 0x00001234;

    printf("%#x",a);

    printf("  n");

    printf("%x", a);

    return 0;

}

}

效果图:

如图,加了井号的显示了前导标志。

数字0

数字0和宽度配合使用,它可以让数据的前面不再补充空格,反而补充0,像这样:

int main()

{

    int a = 555;

    printf("%10d", a);

    printf("  n");

    printf("%010d", a);



    return 0;

}

效果图:

在宽度前面多加一个0,就能让它补充0了。

printf的返回值

前面我们说到,printf函数的返回值是一个int类型的数,这个数是printf函数打印出来的字符数,如果没能成功打印,就返回一个负数,像这样:

int main()

{

    int a = 1234;

    int tmp = printf("%010d", a);



    printf("  n");

    printf("%d", tmp);

    return 0;

}

效果图:

可以看到,我们打印了十个字符,那么它的返回值就是10。

打印练习

以下五个练习,你能写出打印内容吗?

  1. int a=15; printf("%#x", a);
  2. int a=4; printf("%10. *d", a, a);
  3. int a=4; printf("%u",a);
  4. int a = 6; printf("%- *d",a,a);
  5. int a = 8; printf("%+. *d",a,a);
本文转载于网络 如有侵权请联系删除

相关文章

  • Servlet中请给出一个Cookie的增删改查的例子。

    2.Servlet与Cookie:马克-to-win:Cookie有点像Session。Session是把键值对存在服务器端,一个Servlet存值,另外一个Servlet可以取值。Cookie也是以键值对的形式用于读取,不过是保存在客户端浏览器的某个文本里面。取时,也要从这台机器的这个浏览器上去取。像Session一样,你也可以设置过期时间,比如“一年”。和Session不同的是:用户可以把自己浏览器的Cookie工作系统关掉。这就是Cookie不如Session的重要的原因。不可靠,不保险。程序员编的程序都白费了。另外,对于Cookie来讲,servlet只能拿回属于自己整个Web应用的Cookie(别人的Web应用不行)。当然了,Session范围更小,只能拿回自己用户浏览器写过的东西。马克-to-win:底下,我就给出一个Cookie的增删改查的例子。只需运行cookie.html。这个html带动四个增删改查Servlet。读者可以先增加Cookie,之后查询一下,再删除,再查询一下。反正自己研究研究这个例子。实验使用ie8做的,cookie的查找在例子当中。注意此文件不能直

  • 同一浏览器下sessionid互相覆盖的问题

    问题描述:在一台机器上安装多个Tomcat,端口不一样,这里姑且分别称为tomcat1和tomcat2,在两个不同的Tomcat上部署了A和B两个项目,两个项目的代码都是一样的,只有项目名称不同。启动两个Tomcat后,使用同一个浏览器分别访问不同的Tomcat,出现sessionid互相覆盖的情况。例如,访问tomcat1时获取的sessionid是123456,此时再去访问tomcat2时会发现sessionid也是123456,但是tomcat2上并没有这个sessionid,结果又返回一个新的sessionid回来,又进行了一个覆盖,如此循环。解决方案:方法一:tomcat6以上,直接改下conf文件下的context.xml的context标签,给每个tomcat的 SessionCookieName=”JSESSIONID_1”设置一个名字(默认是JSESSIONID) <ContextdocBase="D:\Develop\Tomcat\apache-tomcat-7.0.40\wtpwebapps\poi"path="/poi&quo

  • 一个命令进行Plasma热重启

    一个命令进行Plasma热重启通过一个命令来重启Plasma桌面来释放系统资源KDEPlasma桌面环境具有很多炫酷的显示效果,但是经过一天下来长时间使用Plasma桌面而不待机或者睡眠的话,Plasma桌面会占用大量的内存资源,为了解决这个问题,特地写了一个脚本文件来对Plasma桌面进行热重启,从而释放一些资源的占用思路基本上就是使用Plasma的指令先关闭Plasma桌面再启动它脚本文件内容具体内容:#!/bin/bash kquitapp5plasmashell&&kstart5plasmashell复制命名:restart_kde,注意,没有后缀名赋权使用文本工具或者vim进行编写,编写完成后对其进行运行权限的赋权:sudochmod+xrestart_kde复制复制至bin文件夹将脚本文件移至path中指定的系统变量路径,可放至/usr/local/sbin、/usr/local/bin,/usr/bin中。移动命令:sudocprestart_kde/usr/bin复制使用方法用KRunner,Alt+Space唤醒,确保KRunner拥有执行命令的功能输

  • 使用IBS绘制蛋白质或核苷酸序列

    简介:生物序列图是可视化蛋白质或核苷酸序列中各种功能元件的基础。在这里,我们介绍了一个称为IBS的软件包,该软件包可用于以方便和精确的方式表示蛋白质或核苷酸序列。IBS中提供了多个选项,并且可以按照用户定义的模式对生物序列进行操作,重新着色或重新缩放。而且,最终可以生成可作为文献发表的图片。IBS(IllustratorforBiologicalSequences)是一个专业的基因及蛋白序列图绘制软件,既可以画蛋白质序列,也可以画可视化核酸序列,同时还拥有多种模板与推荐配色。该软件的制作团队为华中科技大学薛宇教授的团队,如果大家发文章使用了这个软件,请记得引用他们的文章。 第一步:首先查找相关基因或者蛋白质的序列结构,这里我用的是ERBB2蛋白结构域信息。第二步:下载和安装IBS软件,根据自己电脑的系统下载。(http://ibs.biocuckoo.org/download.php)第三步:打开软件,在左上角新建一个新的project。首先根据上面得到的信息,绘制序列长度即可。第四步:新增一个结构域,设置其起始点,颜色等信息。第五步:依照ERBB2的示例,我们新增一个文字Note,设

  • 安全测试基础知识

    常见安全问题跨站脚本攻击XSS跨站请求伪造攻击CSRF前端Cookies安全性点击劫持攻击传输过程安全问题用户密码安全问题SQL注入攻击XSS(CrossSiteScripting)跨站脚本攻击介绍什么是XSSweb攻击的一种,通过对网页注入可执行代码(html代码或JS代码)成功被浏览器执行实施XSS攻击具备的条件需要向web页面能够注入恶意代码(输入框、url)恶意代码能够被浏览器成功执行XSS攻击原理用户传入的数据被当做是程序,所以会执行程序XSS能干嘛获取页面数据:通过document即可获取指定元素的值,如获取用户名称、手机号、住址等【偷取网站任意数据包括用户资料】获取cookies:通过document.cookies可以获取网站当前的所有cookies,盗取当前登录用户的登录态,从而冒充被盗用户登录网站甚至后台管理系统【偷取用户密码和登录态】劫持前端逻辑:可以修改某个操作的反馈内容,譬如点击某个按钮本来应该只提交一个请求,但通过XSS脚本可篡改该请求地址,然后用户提交的信息发送到攻击者封装的接口;或可改变用户跳转的页面【欺骗用户,流量劫持】发送请求:攻击者可以让用户在不知

  • Rainbond v5.1.2发布,微服务架构应用便捷管理和交付

    Rainbondv5.1.2发布,微服务架构应用便捷管理和交付Rainbond是开源的企业应用云操作系统,支撑企业应用的开发、架构、交付和运维的全流程,通过无侵入架构,无缝衔接各类企业应用,底层资源可以对接和管理IaaS、虚拟机和物理服务器。2019年3月,Rainbond发布v5.1版本,经过1个月在上百家企业的实际使用,团队持续跟进版本缺陷,迄今为止发布了2个BUG修复版本。Rainbond开源产品的目标是成为企业IT系统的云操作系统,作为基础平台支持各行各业的企业用户,优化IT软件开发企业的开发流程和交付流程,做到一站式开发和交付。作为广大行业IT厂商的合作伙伴,为其提供稳定的、好用的、高效的基础平台,服务于行业软件的架构、开发和交付,Rainbond在这条路上砥砺前行。在V5.1版本中我们引入了以下功能体系来服务用户。支持第三方微服务集成和管理Rainbond在众多的企业中落地使用的过程中出现了两类共同的问题:循序渐进的迁移策略,已经上Rainbond的服务如何与遗留服务通信和统一管理。Rainbond应用网关很好用,但是遗留的服务没办法与Rainbond上的服务共享外网端口或

  • 软件工程师的核心竞争力是什么?

    最近星球里有很多同学在讨论职场发展和个人竞争力相关的话题,以前一直觉得大家在职场大多数时候受困于技术成长,但今年逐渐认识到构建自己的核心竞争力才是职场发展的核心。 这篇文章,我想聊聊我对于软件工程师的核心竞争力的看法。   如何理解核心竞争力? 核心竞争力,我个人认为是指在社会和职场中你有别于其他人的不可替代性,这个不可替代性有两个影响因素: 时间成本:即如果没有你,企业需要多久才能培养或找到能胜任你之前岗位工作的人; 沉没价值:即如果没有你,你的离开为企业的商业价值带来的损失多寡以及影响大小; 相信大家在网上看过很多类似的例子,比如某企业核心技术负责人离职,整个研发工作进度停滞。 当然现代企业为了避免类似现象,一方面会将工作内容不断流程化标准化,另一方面企业即使没有HC也会通过猎头或者在招聘网站挂一些岗位,以应对类似情况。 这也是我经常建议一些同学每隔半年或一年出去面试几次的原因。 这样做的好处一方面可以及时的了解求职市场的现状以及对不同岗位的一些要求,对自己有更清晰的定位;另一方面就是应对上述情况。毕竟对做技术的同学特别是今年,大家应该都深有感触。   软件

  • 云游戏学习与实践(一)——云游戏概述

    一.云游戏的概述 1.概念   云游戏(Cloudgaming)又可称为游戏点播(gamingondemand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏[1]。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。 2.优势与问题   云游戏相较传统游戏有如下优势:   a.省硬盘。游戏本身不需要下载到本地,能节省大量的硬盘空间;   b.硬件弱相关。游戏对客户端所需要的显卡、CPU、内存要求很低,只要具备播放基本流媒体的瘦客户端就可以运行云游戏;   c.游戏安全性。由于游戏使用的是视频流机制,因此可以100%杜绝游戏外挂,大大节省开发商在游戏反外挂上的投入;   d.游戏的随意迁移。当游戏控制问题得到合理的键位映射,可以将电脑上的游戏放在手机上运行,动态适配设备分辨率播放流媒体游戏;  

  • JS给数字加千位分隔符

    本文原链接:https://www.jianshu.com/p/928c68f92c0c JavaScript实现千位分隔符 将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分隔符格式的规则是数字的整数部分每三位一组,以“,”分节。小数部分不分节 。示例:19,351,235.235767这里有几个常见的实现方法。 1.方法一 实现思路是将数字转换为字符数组,再循环整个数组,每三位添加一个分隔逗号,最后再合并成字符串。因为分隔符在顺序上是从后往前添加的:比如1234567添加后是1,234,567而不是123,456,7,所以方便起见可以先把数组倒序,添加完之后再倒序回来,就是正常的顺序了。要注意的是如果数字带小数的话,要把小数部分分开处理。 functionnumFormat(num){ num=num.toString().split(".");//分隔小数点 vararr=num[0].split("").reverse();//转换成字符数组并且倒序排列 varres=[]; for(vari=0,len=arr.length;i<l

  • 基于智能分析网关的小区电动车AI检测方案设计与应用

    随着人工智能技术的不断成熟与落地,各行各业也逐渐融入AI智能检测技术,尤其是在视频监控领域,通过AI视频智能检测与分析,可以大大提高视频的自动化、智能化监控能力。比如在小区的管理中,由电动车上楼入户引发的电梯、楼道火灾、爆炸等安全事故频频发生。部分业主无视小区规定,偷偷推电动车进入电梯,加上小区楼栋多,物业难以做到全面监管,因此对电梯内电动车的智能检测需求也越来越多。       智能分析网关内置多种AI算法,其中包括人脸检测与识别、电动车检测等,设备可对电梯内的监控视频进行实时检测,一旦检测到电动车,将立即触发告警。将智能分析网关与EasyCVR视频融合平台结合使用,可构建基于AI智能检测识别技术的社区物业智能视频监管平台,实现禁止电动车进入电梯,或禁止电动车胡乱摆放占用消防车专用道,以及小区内其他场所的视频监控等管理目标。     方案可实现的功能: 1)电动车检测 采用基于AI算法的计算机视觉技术,对电动车实现精确检测、识别,能有效过滤自行车、婴儿车等干扰,实现毫秒级响应速度,快速进行预警反应,实时预警电梯区域内电动车闯入事件。

  • 消息队列 rabbitMQ 的一些操作

    百度上搜rabbitMQ的一些操作。

  • Spring Boot从入门到精通(二)配置GitHub并上传Maven项目

    简单介绍一下GitHub,它是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。 GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。托管版本数量非常之多,其中不乏知名开源项目RubyonRails、jQuery、python等。 在上一篇文章中讲述了使用SpringBoot框架搭建第一个Maven项目并导入至IntelliJIDEA开发工具(参见“Java精选”公众号,SpringBoot从入门到精通一系列文章视频持续更新中...,感谢关注!),接下来说一说如何通过IntelliJIDEA开发工具将Maven项目提交至GitHub上。   GitHub创建账号 — 在GitHub中创建一个账号,小编这里就跳过此步骤了。(只需创建账号,无需在GitHub上创建仓库),登录成功后。打开https://github.com/地址,选择New按钮,创建项目,如图所示:   创建仓

  • Python的几个爬虫代码整理(网易云、微信、淘宝、今日头条)

    整理了一下网易云歌曲评论抓取、分析好友信息抓取、淘宝宝贝抓取、今日头条美图抓取的一些代码抓取网易云评论进入歌曲界面:http://music.163.com/#/song?id=453185824找到如下的数据源:贴一段Lyrichu的代码:(运行环境为P2.7)#-*-coding:utf-8-*-#@Time:2017/3/288:46#@Author:Lyrichu#@Email:919987476@qq.com#@File:NetCloud_spider3.py'''@Description:网易云音乐评论爬虫,可以完整爬取整个评论部分参考了@平胸小仙女的文章(地址:https://www.zhihu.com/question/36081767)post加密部分也给出了,可以参考原帖:作者:平胸小仙女链接:https://www.zhihu.com/question/36081767/answer/140287795来源:知乎'''fromCrypto.CipherimportAESimportbase64importrequestsimportjsonimportcodecs

  • Frequent values

    题目链接:https://vjudge.net/problem/POJ-3368#author=ljc1113 1#include<cstdio> 2#include<cmath> 3#include<algorithm> 4usingnamespacestd; 5constintmaxn=1e5+10; 6intn,q,l,r; 7inta[maxn],cnt[maxn],f[maxn][20]; 8voidst_create(intn) 9{ 10for(inti=1;i<=n;i++) 11f[i][0]=cnt[i]; 12intmaxj=log2(n); 13for(intj=1;j<=maxj;j++) 14{ 15for(inti=1;i<=n-(1<<j)+1;i++) 16f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]); 17} 18 19} 20intst_query(intl,intr) 21{ 22if(l>r)return0; 23in

  • RuntimeError: Python is not installed as a framework.

    RuntimeError:Pythonisnotinstalledasaframework. 文章转载:https://www.cnblogs.com/harelion/p/5637767.html 在Conda虚拟环境中运行matplotlib遇到异常提示: 似乎是因为虚拟环境与默认环境的安装配置不同造成的。 搜索错误信息之后,在STO上找到了解决方案: 1、pip安装matplotlib之后,会在根目录下产生一个.matplotlib的目录: ➜binll~/.matplotlib total280 -rw-r--r--1mestaff78K1042015fontList.cache -rw-r--r--1mestaff59K11715:56fontList.py3k.cache drwxr-xr-x2mestaff68B1042015tex.cache 复制 2、在这个目录下创建一个名为matplotlibrc的文件,内容是: backend:TkAgg 复制 然后保存退出,重启Python交互界面或重新运行脚本,import正常执行。 STO答案地址:http://sta

  • git hub 配置ssh key(pull 时报权限问题)

    https://blog.csdn.net/YanceChen2013/article/details/82218356

  • matlab 匿名函数 and m文件的基本结构

    不再需要用m文件 >>parabola=@(x)1.3*x.^2+2.*x+30;>>fplot(parabola,[-2525])   m文件的基本结构   function【x,y】=myfun(xxx) %用一行文字来综述函数功能 %帮助文字解释如何使用函数用一行或多行 %在命令行中键入help<functionname>时可使用他   %函数体一般从第一个空白行后开始 %注释表述函数的行为,输入输出的类型等 %在命令行中键入 help<functionname>时不会显示这些文本

  • 第五次作业

    1.学习进度表 周次 学习时间 新编写代码行数 博客量(篇) 学到知识点 1 10 10 1 树和二叉树   2.全都种下去   作业1: fortran:它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。 C:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 pascal: Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。 Pascal计算机程序教程如今已经有专业化课程,并且越来越完善和严格化。 simula:1967年5月20日,在挪威奥斯陆郊外的小镇莉沙布举行的IFIPTC-2工作会议上,挪威科学家Ole-JohanDahl和KristenNygaard正式发布了Simula67语言。Simula67被认为是最早的面向对象程序设计语言,它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、类、继

  • java.lang.IllegalArgumentException: Invalid character found in method name

    java.lang.IllegalArgumentException:Invalidcharacterfoundinmethodname[0x160x030x010x000x900x010x000x000x8c0x030x030xad0x8c$m0x070xf6c0x1776$0xa4X_0xb10xae6L0xc1]0xae3N0x970xc70x1e0xbb0x170xc80xf6O0x1e0x000x00.0xc0+0xc0/0x000x9e0x000x9c0xc00x0a0xc00x140x0090x00k0x0080x0050x00=0xc00x090xc00x130x0030x00g0x0020x00/0x00<0x000x050x000x040x000x160x000x130x000x0a0x010x000x0050xff0x010x000x010x000x000x0a0x000x080x000x060x000x170x000x180x000x190x000x0b0x000x020x010x000x000x0d0x000x1a0x000x180x040x030x05

  • Linux Kali / Ubuntu 重置root密码 忘记root密码

    1、启动系统,显示GRUB选择菜单(如果默认系统启动过程不显示GRUB菜单,则在系统启动时需要长按[Shift]键,显示GRUB界面),选择AdvancedoptionsforUbuntu,按下[Enter]进入,选择recoverymode,不要按下回车键。   2、按下[e]键进入命令编辑状态,到 linux/boot/vmlinuz-.......rorecoverynomodeset所在行,将“rorecovery nomodeset”替换为“quietsplashrwinit=/bin/bash”,按下[F10]或者[Ctrl+x]重启系统。 3、此时以root身份启动一个可读写的bash,直接使用命令passwd更改root密码,然后按下[Ctrl+Alt+Delete]重启系统。  

  • 练习题12

    #import<Foundation/Foundation.h> intmain(intargc,constchar*argv[]){ @autoreleasepool{ /* 第1题字符串中的world替换为ibookanwisdom */ NSLog(@"第一题"); NSString*str1=@"helloworldandsunshine"; NSMutableString*newstr1=[NSMutableStringstringWithString:str1]; NSRangerange=[newstr1rangeOfString:@"world"]; [newstr1replaceCharactersInRange:rangewithString:@"ibookanwisdom"]; NSLog(@"%@",newstr1); /* 第2题字符串的相加,以字符串输出,并输出长度 */ NSLog(@"第二题"); NSString*str2=@"999"; NSString*str3=@"888"; NSIntegers1=[str2intValue];

相关推荐

推荐阅读