拓冰建站拓冰建站
首页 / 资讯中心 / 正文

printf 详解 - 你所不知道的printf用法

系列文章目录printf 详解 - 你所不知道的printf用法scanf 详解 - 你所不知道的scanf用法持续更新中…文章目录系列文章目录一.printf的概念二.printf的使用1.输出字符串①直接输出字符串②直接输出字符串变量③标准输出字符串2.输出数字①常规输出②十进制输出技巧③八进制和十六进制输出技巧三.常用转义字符五.深水炸弹问题:下面这段代码的输出结果为多少解答:六.小结一.printf的概念定义:printf 是 (print format) 的缩写是指格式化输出函数主要功能是向标准输出设备按规定格式输出信息调用格式:printf(格式化字符串,参量表);二.printf的使用1.输出字符串①直接输出字符串输出格式:printf(hello world!);printf输出字符串的方式有很多在我们最开始学习C语言时我们会输出hello world!这样的方式属于直接输出字符串。它是根据h的地址向后一个一个进行打印直到遇到\0才会停止而hello world!\0其实是有\0的只是被隐藏了在这里我就不细讲了后面我会出一期字符串的相关知识进行解释。当然我们也不需要这么复杂的去这样记这里是为第二种输出方式做铺垫的。②直接输出字符串变量输出格式:printf(str);在这样输出之前我们要先做一件事情char str[] hello world;我们需要先创建一个存储字符串的数组。这样创建的字符串hello world!\0也是有\0在里面的只是被隐藏了。在这里str所指向的是首字符h的地址它也是通过str所指向的h的地址向后进行打印直到遇到\0停止这样的方法更为简单快捷但我依然推荐后面要讲到的标准的输出格式。③标准输出字符串输出格式:printf(%s, str);这样的输出方式依然是要char str[] hello world;先创建一个存储字符串的数组然后通过这样的格式输出。这样输出能让读者这更清楚的读懂你这一步是要做什么事情也有利于后期自己的阅读。2.输出数字①常规输出在这里我们只需要先创建一个整形变量int num1 10;和一个浮点型变量double num2;输出格式释义printf(%d, num1);%d是以十进制的方式进行输出。printf(%o, num1);%o是以八进制的方式进行输出。printf(%x, num1);%x是以十六进制的方式进行输出。printf(%u, num1);%u是将符号位默认为数值方式进行输出。printf(%f, num2);%f是以浮点数的方式进行输出。②十进制输出技巧在这里我们只需要先创建两个整形变量int num 10;和int count 5;输出格式释义printf(%2d, num);%2d它所表示占2个输出位置数字靠右对齐位数不足2个则在左边补空格printf(%-2d, num);%-2d它所表示占2个输出位置数字靠左对齐位数不足2个则在右边补空格printf(%*d, count, num);%*d表示占count 5个输出位置数字靠右对齐位数不足5个则在左边补空格printf(%-*d, count, num);%-*d表示占count 5个输出位置数字靠左对齐位数不足5个则在右边补空格printf(%.4d\n, num);%.4d表示占4个输出位置如果输出的内容不足4位则只在左边用零填充printf(%04d\n, num);%04d表示占4个输出位置如果输出的内容不足4位则只在左边用零填充③八进制和十六进制输出技巧在这里我们只需要先创建一个整形变量int num 10;输出格式释义printf(%#o\n, num);输出八进制前面的0printf(%#x\n, num);输出十六进制前面的0x三.常用转义字符转义字符释义\’用于表示字符常量’用于表示一个字符串内部的双引号\\用于表示一个反斜杠防止它被解释为一个转义序列符\b退格符\f进纸符\n换行\r回车\t水平制表符\v垂直制表符\dddddd表示1~3个八进制的数字\xdddd表示2个十六进制数字五.深水炸弹问题:下面这段代码的输出结果为多少printf(%d,printf(%d,printf(%d,43)));解答:printf的返回值:printf函数的返回值是打印的所有字符的总数(包括转义字符)。这道题令我印象极其深刻我认为有必要拿出来专门讲一下。首先我们要思考printf(%d, 43)的结果为多少至少我第一次遇到的时候毫无头绪但我们要知道printf()是一个函数所以我们这里我们可以创建一个变量来接收这个值。inta12;aprintf(%d,43);printf(\na %d\n,a);这里我创建了一个变量a来接收printf(%d\n, 43);的返回值输出结果a 2得到这个输出结果的时候我就有了一点才想这么无厘头的值该不会是有几个数吧当然现在我还不能确定我于是又进行了几次尝试。//测试:当111的输出结果inta12;aprintf(%d,111);printf(\n%d\n,a);在几次尝试过后我确定了printf()的返回值确实是 “数字的个数” 。最后我通过分析这道题的输出结果为4321补充:intaprintf(num%d\n,43);printf(%d,a);// 结果为7原因里面有7个字符(包括转义字符%d被43所代替视为两个字符)。六.小结正是因为这样一道题我认为我有必要对于每个函数的特性进一步的学习和研究所以也从这篇博客开始我将持续更新C语言标准库函数的函数详解如果我的内容中出现错误也很乐意接受批评指点希望每个看到我博客的人都能从中有所收获而非无功而返当然我会回再接再厉继续更新更为优质的博客与大家一起分享一起进步。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门