当前位置: 首页 > 编程日记 > 正文

C语言格式控制符和转义字符

1.         格式控制符

格式输出printf 作用是向终端输出若干个类型任意的数据。

格式:printf (格式控制符,输出列表)

1)         格式控制符

l          %  格式说明引导符。

l          -  指定左对齐输出。

l          0  指定空位填零。

l          m.n  指定输出域宽度及精度

m表示数据最小宽度,如果实际数据宽度>m,按实际数据宽度输出,如果实际数据宽度<m,左边补空格。n对于实数来讲表示n位小数,对于字符串来讲,表示截取的字符个数

l          l,h    输出长度的修正

l对整型指定长整型long

例:%ld , %lx , %lo , %lu

l对实型指定双精度double

例:%lf

h 只用于整型的格式字符修正为short

例:%hd , %hx , %ho , %hu

2)         格式字符 指定输出项的数据类型和输出格式。

l          d  有符号十进制整数。

l          o  无符号八进制数。

l          x   无符号十六进制数(小写的x格式中用小写字母a,b,c,d,e,f来表示10到15之间的数,大写的X则用大写的ABCDEF来表示10到15之间的数)

l          u  不带符号的十进制整数。

l          c    输出一个字符。

l          s  输出一个字符串

l          e  以指数形式输出实型数。

l          f        以小数形式输出实型数(单精度,或称浮点数)。

l          g   自动决定输出格式为e和f中较短的一种,不打印无效的零。

l          %   输出%

补充:%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)

           %p 指针

注意:

?         对于单精度数,使用 %f 格式符输出时,仅前7位是有效数字,小数6(有效数字定义:在一个近似数中,从左边第一个不是0的数字起,到精确到末位数止,所有的数字,都叫这个近似数字的有效数字)。

?         对于双精度数,使用 %lf 格式符输出时,前16位是有效数字,小数6

?         编译程序只是检查printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换(输出的数为随机)。

?         格式控制字符串中可以包含转义字符。

?         格式控制字符串中的普通字符则原样输出

?         输出项的参数除了常数、变量外还可以是表达式、函数调用。

?         %g,%f和%e这三个格式用于打印浮点值,%g格式用于打印那些不需要按列对齐的浮点数特别有用,其作用有:

a)         去掉该数尾多余的零(没有达到六位的数)

b)         保留六位有效数字(多余六位的)

%e格式用于打印浮点数时,一律显式地使用指数形式

例如:输出圆周率时是:3.141593e+00

它们的区别:

%g格式打印出的数是总共6位有效数字

%e格式打印出小数点后的6位有效数字

%f禁止使用指数形式来表示浮点数,因此圆周率输出为:3.141593(但注意它的精度要求:也是小数点后6位有效数字)

?         %E和%G只是在输出时用大写字母(E)代替了小写字母(e)

?         %%格式用于打印一个%字符。

?         输出正负号的技巧,例如:

printf("%+d %+d %+d\n",-5,0,5);

只要在中间加个“+”号就行,作用是输出符号位(即,数的正负号)

如果不希望正数的前面出现‘+’号,只要在“% d”中间加个“ ”号(即空格)就行,例如:

int i;

for(i=-3;i<=3;i++)

printf("% d\n",i);    // 注意%和d之间有一个空格

2.         转义字符

\a: 蜂鸣,响铃

\b: 回退:向后退一格

\f: 换页

\n: 换行,光标到下行行首

\r: 回车,光标到本行行首

\t: 水平制表

\v: 垂直制表

\\: 反斜杠

\': 单引号

\": 双引号

\?: 问号

\ddd: 1到3位八进制数所代表的字符

\xhh: 1到2位十六进制数所代表的字符

\0: 空字符(NULL),什么都不做

注:

l          \v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

l          \n其实应该叫回车换行。换行只是换一行;\r回车只是回到行首。

l          \t 光标向前移动四格或八格,可以在编译器里设置

l          \' 在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 ' 即可。

例:

如果在字符'a'中直接使用',就会出现这种情形:'a'' ,编译器会报错,因为编译器会认为多写了一个单引号。

所以在字符中时,必须使用\',以避免歧义性。

如果为了在字符串里面添加一个单引号,直接用单引号 '  即可,如果用转义字符 \' 的话就会把\'两者直接算进去。

相关文章:

面试高频题:单链表的逆置操作/链表逆序

函数内对形参的操作并不能影响实参&#xff0c;函数内修改的是实参的副本。要想在函数内部修改输入参数&#xff0c;要么传入的是实参的引用&#xff0c;要么传入的是实参的地址。 #include <iostream> #include <cstdlib> #include <cstring>//strlen using…

猖狂!微软、思科源码惨遭黑客 100 万美元打包出售

【编者按】SolarWinds 黑客攻击事件又延伸出新的危害了&#xff1a;微软、思科、FireEye 等公司的源代码在一网站公开出售&#xff0c;明码标价&#xff0c;甚至打包价为一百万&#xff0c;究竟是什么情况&#xff1f;整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNn…

vmstart的用法

vmstat命令是最常见的Linux/Unix监控工具&#xff0c;可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率&#xff0c;内存使用&#xff0c;虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令&#xff0c;一个是Linux/Unix都支持&#xff0c;二是…

配置.net 3.0开发环境

开发.net 3.0 应用程序&#xff0c;需要配置开发环境。配置步骤如下&#xff1a;1. 开发.net 3.0&#xff0c;首先当然要安装.NET Framework 3.0 了安装前使用windowsupdate安装好最新的更新&#xff08;Windows XP SP2 和Windows 2003 SP1一定要安装&#xff09;&#xff0c;下…

杭电 hdu 2096

小明AB&#xff1a;#include<iostream> using namespace std; int main(){int n;cin>>n;cin.ignore();while(n--){int a,b;cin>>a>>b;cout<<(a%100b%100)%100<<endl;}return 0; }转载于:https://blog.51cto.com/beyond316/1261849

关于2021年及未来,人工智能的5大趋势预测

吴恩达教授&#xff08;美国斯坦福大学计算机科学系和电子工程系副教授&#xff09;曾反复强调一句名言&#xff1a;"人工智能是新电力。" 我们正跟随着人工智能发展的脚步&#xff0c;走向第四次工业革命的浪潮之巅。 毋庸置疑&#xff0c;人工智能已经成为社会进步…

京东618:智能机器人JIMI的进击之路

ArchSummit全球架构师峰会深圳站将于2017年7月7日~8日在深圳华侨城洲际酒店召开&#xff0c;大会设置了相关专题来深入解读电商大促背后的技术故事&#xff0c;大会还邀请了eBay、WalmartLabs等国外顶尖技术专家&#xff0c;分享AI促销、搜索引擎、异地多活、库存物流等核心架构…

读懂深度迁移学习,看这文就够了 | 赠书

百度前首席科学家、斯坦福大学副教授吴恩达&#xff08;Andrew Ng&#xff09;曾经说过&#xff1a;迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力。本文选自《深度学习500问&#xff1a;AI工程师面试宝典》&#xff0c;将重点介绍目前最热门的深度迁移学…

Visual Studio 2005 IDE 技巧和窍门

发布日期&#xff1a; 2007-02-26 | 更新日期&#xff1a; 2007-02-26James Lau Microsoft 项目经理 适用于&#xff1a; Microsoft Visual Studio 2005 摘要&#xff1a;Visual Studio 2005 是目前业内一流的开发工具&#xff0c;我想在此与大家分享一些使用技巧和窍门&#x…

ZOJ 1025 Wooden Sticks(快排+贪心)

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId25 题目大意&#xff1a;机器运送n个木条&#xff0c;每个木条有一个长度和重量。运送第一根木条需要1分钟的准备时间&#xff0c;接下来如果后一根木条的长度和重量都大于等于前一根木条&…

Swift:UIKit中Demo(一)

关于Swift的基本概念及语法知识。我在前面的章节中已经介绍了非常多。这一节和下一节主要有针对性的解说Swift在实际UIKit开发中的使用场景及注意点。先来看看Demo的终于效果图。Demo分析&#xff1a; 1. 界面上面有三个button&#xff0c;他们的宽度不一致。 2. 点击每一个but…

jdbc封装与多并发的共鸣

欢迎来到&#xff1a;http://observer.blog.51cto.com代码的封装是一门艺术&#xff0c;封装得好&#xff0c;不但给自己便利&#xff0c;还可以给自己的维护提供帮助&#xff1b;同时&#xff0c;封装得好&#xff0c;还可以给看自己代码的人以赏心悦目的感觉&#xff0c;团队…

计算机视觉怎样实现自我超越?更大规模更精准的数据

最新发布的《2021中国人工智能应用趋势报告》强调&#xff0c;数据、算力和算法是支撑人工智能发展的"三驾马车"&#xff0c;为模型训练提供基本资料的「数据」&#xff0c;是人工智能的根基。 随着互联网、社交媒体、移动设备和传感器的大量普及&#xff0c;其产生…

Visual Studio 2005 Web Deployment Projects版本不同引发的问题

为了方便Visual Studio 2005发布为单一dll&#xff0c;微软发布了一个Visual Studio 2005 插件&#xff0c;Visual Studio 2005 Web Deployment Projects&#xff0c;在微软的不同文档里&#xff0c;这个插件提供了两个下载地址&#xff0c;分别是&#xff1a; 下载地址一&…

【书籍下载链接】_2_第二轮_计算机专业书籍

各位朋友&#xff0c;下面是我收集的书籍&#xff0c;介绍给大家&#xff0c;有需要可以分享给大家&#xff0c;如果看的还可以&#xff0c;请购买纸质版的图书。 驱动器 J 中的卷是 Elements 卷的序列号是 8AAF-3206 j:\ 的目录 2014/01/20 20:00 1,533,385 WinCE.pdf2010/09/…

VS2005发布、生成网站时如何设置固定的dll文件名?

在用VS2005发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的; 如果要固定生成文件名如何固定呢&#xff1f;有以下两种方案&#xff1a; 一、每个页面的程序集分别生成对应的dll; 方法&#xff1a;在“发布网站”的选项中&#xff0c;勾选“使用固定命名和单页程…

android 广播机制

1&#xff1a;首先说andoid 广播分为系统的和 自定义的 2&#xff1a;注册方式呢&#xff0c;也是两种&#xff0c;1&#xff1a;静态注册&#xff0c;在manifest.xml 文件中注册的 2&#xff1a;动态注册&#xff0c;用filter 区分 不说了 占代码 首先是动态注册&#xff1a;…

2021第一融!第四范式完成D轮7亿美元融资

来源丨第四范式头图丨来源于第四范式近日&#xff0c;第四范式宣布完成D轮融资&#xff0c;融资金额7亿美元。本轮融资由春华资本、博裕资本、厚朴投资领投&#xff0c;并引入国家制造业转型基金、国开、国新、中国建投、中信建投、海通证券等战略股东&#xff0c;红杉中国、中…

springboot-26-springboot 集成rabbitmq

rabbitmq是基于AMQP规范的一个消息代理, 它可以兼容jms, 支持其他语言, 并且可以跨平台 1, 安装 1) 普通安装 度娘: 2) docker 安装 sudo docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management 安装成功后: 使用 guest/guest 用户登录 2 使用: 1) 添加 rabbi…

asp.net中的联动菜单

目标达到的效果&#xff1a;两个下拉框&#xff0c;第二个跟随第一个变化而变化&#xff0c;使用客户端脚本JavaScript在ASP.NET环境下实现。 第一步&#xff1a;建立JavaScript脚本&#xff1a; 在Page_Load中建立并注册这个js脚本&#xff1a; string scriptKey "Menu…

2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!

今天&#xff0c;「INFLUENCE长沙 2020年度“科技之星”企业评选」&#xff08;下文统称「长沙科技之星」&#xff09;圆满收官&#xff0c;评选结果正式揭晓&#xff01;作为专业的 IT 社区&#xff0c;CSDN 多年来与千万技术人员、技术企业共同见证了产业的发展和时代的变更…

CENTOS6.4 IBUS输入法不显示候选词解决办法

IBUS输入法 不显示候选词原因分析&#xff1a;输入im-chooser时候&#xff0c;显示找不到gtk模块&#xff1b;原因为升级python后的版本&#xff0c;不能导入gtk。找到能够导入gtk版本的python,然后默认python设置为此版本。故障解决&#xff1a;删除或更改默认python版本# whi…

sql server 表索引碎片处理

DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本更新日期&#xff1a; 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息。 重要提示&#xff1a;后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能&#xff0c;并着手修…

ASP.NET2.0 GridView小技巧汇粹

1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按钮可以生成,具体的编辑更新和删除操作在代码运行时而不是在控件设计时指定,虽然多写了一点代…

树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元

整理 | 郑丽媛来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;昨天&#xff0c;树莓派搞了个大动作&#xff1a;推出了首款微控制器开发板 Raspberry Pi Pico&#xff01;该开发板基于树莓派开发的全新芯片——RP2040&#xff0c;并且作为双核 Arm Cortex-M0 的它…

“chaos”的算法--之链表面试题

【 声明&#xff1a;版权所有&#xff0c;欢迎转载。 联系信箱&#xff1a;yiluohuanghungmail.com】前两天倩仔仔给我了一套试题让我看&#xff0c;整体来说感觉题都还算不错&#xff0c;从中随便找了两道。先看题吧&#xff01;1、怎样判断一个单链表中是都存在环路&#xff…

ABP官方文档翻译 6.1.2 MVC视图

ASP.NET MVC 视图 介绍AbpWebViewPage基类介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图。你可以如往常一样创建正常的MVC视图。 AbpWebViewPage基类 ABP提供了AbpWebViewPage&#xff0c;它定义了一些有用的属性和方法。如果你使用启动模板创建的工程&#xff0c;那么你所有的…

ASP.NET 打开新窗口几种方法

ASP.NET打开新窗口方法一:Response.Write("<script language/"javascript/">window.open(aaa.aspx,新窗口,/"toolbaryes,locationno,directoriesyes,statusyes,menubaryes,resizableyes,scrollbarsyes/");</script>");这种方式代码每…

Hibernate的使用梳理

Hibernate创建步骤 &#xff08;五大核心接口&#xff1a;Configuration/SessionFactory/Session/Transaction/Query&#xff09; 1.新建java工程&#xff0c;导入需要的jar包。 2.创建hibernate.cfg.xml配置文件和Test.java工具类。配置好相应的实体对象User.java User.hbm.x…

驭势科技引入国家队战略注资,完成超10亿元人民币融资

2021年1月25日&#xff0c;驭势科技&#xff08;UISEE&#xff09;宣布完成累计金额超10亿元人民币的新一轮融资&#xff0c;并获得国开制造业转型升级基金的战略注资。这是国开制造业转型升级基金在自动驾驶领域的首笔投资。2019年11月&#xff0c;国家制造业转型升级基金股份…