printf函数介绍及常见用法及注意事项
1、printf函数介绍
printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。 printf函数的调用格式为:
printf("格式控制字符串",输出项列表); 如:printf("%d,%d",a,b);
格式字符串
是由格式字符(包括:转换说明符、标志、域宽、精度)和普通字符组成,转换说明符和百 分号(%)一起使用,用来说明输出数据的数据类型、标志、长度和精度
输出项列表
可以是常量、变量和表达式,也可以没有输出项,这些输出项必须与格式控制字符串在类型 和数量上完全对应,否则,结果将不可预测。当有多个输出项时,各个输出项之间用逗号 ‘,’分隔
思考:
int main() {
printf(“hello”); printf(“C program!”); return 0;
} 输出结果仍为:helloCprogram!
2、格式控制符使用说明
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
1%:表示格式说明的起始符号,不可缺少。 2-:有-表示左对齐输出(右侧补空格),如省略表示右对齐输出(左侧补空格)。 30:有0表示指定空位填0,如省略表示指定空位不填。 4m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型 数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。 5l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
格式字符 格式字符用以指定输出项的数据类型和输出格式。 1d格式:用来输出十进制整数。有以下几种用法: %ld:输出长整型数据。
2o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽 度用“%mo”格式输出。
例:
main()
{ int a = -1; printf("%d, %o", a, a);
}
运行结果:-1,177777 程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为 (177777)8。
3x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段 宽度用"%mx"格式输出。
4u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽 度用“%mu”格式输出。
5c格式:输出一个字符。
6s格式:用来输出一个串。有几中用法
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。 %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串 长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注 意:如果n未指定,默认为0。 %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n 值,即保证n个字符正常输出,注意:如果n未指定,默认为0。
如果是sprintf(desc, "%m.ns", sour); 如果desc空间够的话,会在%m.ns 串 的结尾自动补null 字符,不同于strncpy。
例如 :sprintf(desc, "%.3s", "123456"); desc如果空间>=4字节的话,第4个字节将是null字 符。
1)%f:不指定宽度,整数部分全部输出并输出6位小数。
2)%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
通过%m.n的形式,依然无法解决2)的精度不准的问题,原因是float类型,小数点后6位有效
3)%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
4)%*.*特殊用法:
8e格式:以指数形式输出实数。可用以下形式: %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。 %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整 个输出数据所占的宽度。
9g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。 10p格式:输出变量在内存中的地址(指针)
3、printf函数使用注意事项
(1)、域宽问题
%d:按整型数据的实际长度输出。 关于整数数据打印的时候域宽的问题。 %md-->m域宽,打印出来以后,在控制台上,显示m位
如果我们要打印的数的位数如果超过我们设定 m 则 原样输出 如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下: 如果m为正数,则左对齐(左侧补空白) 如果m为负数,则右对齐(右侧补空白)
%0md 表示,位数不足部分补“0”
(2)、关于转义字符
关于printf函数的进一步说明: 如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:
printf("%f%%", 1.0/3); 输出0.333333%。
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。 \b 退格,相当于按一下backspace。
\r 使光标回到本行开头。
\f 换页,光标移到到下页开头。
\\ 输出\字符,也就是在屏幕上显示一个\字符。
\' 输出'字符,也就是在屏幕上显示一个'字符。
\" 输出"字符,也就是在屏幕上显示一个"字符。
分享到:
相关推荐
java菜鸟学习第一步-java基础语法,学习一门语言先从语法开始学起,学好基础才能深入的学习编程
Java基础语法一PPT学习教案.pptx
Java基础语法)教案Java开发环境搭建,HelloWorld案例,注释、关键字、标识符以及Java中的数据,但是难度都相对较低,大家只需要下去多加练习,掌握肯定没问题。 关于前两大块内容,Java开发环境待见和HelloWorld案例...
由本人整理的mooc精品课程嵩天老师的python基础语法课程,以一图流的思维导图形式展开,方便学习和使用
我自己学习python时整理的一份学习笔记,包含了python所有的基础语法,可以用作入门者的一个小字典,或者初学者的随堂教程。
项目概述: 本项目是基于《Python学习手册》进行的Python基础语法实战演练,旨在通过实践加深对Python语言基础知识的理解。...本项目通过一系列的源代码示例,为学习者提供了一个全面且深入的Python基础语法学习资源。
这篇文章是一份详细的Kotlin入门学习指南,重点介绍了Kotlin的基础语法部分。主要内容包括: 1. 介绍了Kotlin的概念、优点以及在Android开发中的使用方法。 2. 讲解了Kotlin的基础语法,包括定义包名、函数、变量、...
《python基础语法合集68页.pdf》是一份详细介绍Python基础语法的资料,共计68页。本资料适用于初学者和有一定编程基础的人群,旨在帮助读者快速掌握Python基础语法知识,为进一步学习Python打下坚实的基础。 本资料...
java学习中所用到的基础语法,便于初学者的学习与理解可帮助初次学习java的人更好的记忆java的基础知识。它可以为你学习打下一个好的基础,让你更快更好的学习编程语言。
在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程。 第一个 Python 程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。 linux上你只需要在命令行中...
1. python基础语法学习笔记 2. 内含有相对应的完整代码 3. 压缩文件含有对应的pdf,md以及相对应的xmind思维导图 4. 关注我,不迷路,这个是一个连载的故事奥
Mysql基础语法及脚本,非常适合新人学习,里面有2个Demo及脚本,第一个适合完全不会的新人,通过学习Demo1,能掌握简单的增删改查,通过学习Demo2,能掌握mysql运算符,排序,用limit分页查询,MySQL正则表达式,约束,索引,函数...
C# 学习记录,C#基础语法学习案例37套源码(适合正在学C#的学者) 001第一个HelloWorld程序 002CSharp数据类型与变量 003类型推断 004各种数据类型大小比对及所占字节 005枚举 006结构体 007元组 008字符串 009...
某付费课程的学习笔记,循序渐进让人入门。个人从一个不会编程的小白,到现在可以应用python写一些自动化工具提高工作效率。关键是具备了自学python的学习能力,有更多的拓展空间。
此资源从网上查找整理
有关Python实用的函数以及方法,里面包含python的基础语法,机器学习和深度学习相关的手动实现的案例,供以后随时调用,不需要重新写。其中NLP文件夹本人的开源项目,目前完成机器翻译一项,等待后续跟进。 适合学习...
C#语言学习用书。C#是一种简单、现代、面向对象和类型安全的编程语言,由C和C++发展而来。C#(发音为“C霎普”)牢固地植根于C和C++语言族谱中,并且会很快被C和C++程序员所熟悉。C#的目标在于把Visual Basic的高...
一个学习python学习的仓库,包括基础语法、类、socket、线进协程、Django、Matplotlib、num
新人入行可用,前端js入门