当前位置:首页 > 教育培训 >

c语言中什么是printf(c语言中printf语句用法)

来源:原点资讯(www.yd166.com)时间:2023-06-03 13:20:50作者:YD166手机阅读>>

c语言中什么是printf,c语言中printf语句用法(1)

printf概述

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

格式输出,它是C语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

c语言中什么是printf,c语言中printf语句用法(2)

printf 几种用法
  • 格式化规定符 :a 符号 作用

%d 十进制有符号整数

%u 十进制无符号整数

%f 浮点数

%s 字符串

%c 单个字符

%p 指针的值

%e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数

%o 无符号以八进制表示的整数

%g 自动选择合适的表示法

说明:

(1). 可以在"%"和字母之间插进数字表示最大场宽。

例如: = 表示输出3位整型数, 不够3位右对齐。

%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,

小数点占一位, 不够9位右对齐。

%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;

若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

例如: d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度

为4位。

如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,

小数点前的数字代表最小宽度。

例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则

第9个字符以后的内容将被删除。

(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

例如: %ld 表示输出long整数

%lf 表示输出double浮点数

(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可

说明输出为左对齐, 否则为右对齐。

例如: %-7d 表示输出7位整数左对齐

%-10s 表示输出10个字符左对齐

  • 一些特殊规定字符 :b 字符 作用

/n 换行

/f 清屏并换页

/r 回车

/t Tab符

/xhh 表示一个ASCII码用16进表示,

其中hh是1到2个16进制数

  • 示例

c语言中什么是printf,c语言中printf语句用法(3)

关于printf缓冲

在printf的实现中,在调用write之前先写入IO缓冲区,这是一个用户空间的缓冲。系统调用是软中断,频繁调用,需要频繁陷入内核态,这样的效率不是很高,而printf实际是向用户空间的IO缓冲写,在满足条件的情况下才会调用write系统调用,减少IO次数,提高效率。

printf在glibc中默认为行缓冲,遇到一下几种情况会刷新缓冲区,输出内容:

(1)缓冲区填满;

(2)写入的字符中有换行符\n或回车符\r;

(3)调用fflush手动刷新缓冲区;

(4)调用scanf要从输入缓冲区中读取数据时,也会将输出缓冲区内的数据刷新。

可使用setbuf(stdout,NULL)关闭行缓冲,或者setbuf(stdout,uBuff)设置新的缓冲区,uBuff为自己指定的缓冲区。也可以使用setvbuf(stdout,NULL,_IOFBF,0);来改变标准输出为全缓冲。全缓冲与行缓冲的区别在于遇到换行符不刷新缓冲区。

printf在VC 中默认关闭缓冲区,且只能设置全缓冲。输出时会及时的输到屏幕。因为微软闭源,所以无法研究printf函数的实现源码。

栏目热文

c语言printf怎么写(c语言printf怎么用)

c语言printf怎么写(c语言printf怎么用)

C语言基础知识:printf的输出格式printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的...

2023-06-03 13:13:51查看全文 >>

c语言printf用法例子(c语言怎么出现两个printf语句)

c语言printf用法例子(c语言怎么出现两个printf语句)

C语言格式化输出的函数有printf、sprintf和snprintf等,功能略有不同,使用方法大同小异,本文以prin...

2023-06-03 13:58:15查看全文 >>

c语言printf函数详细解释(c语言里面printf的用法)

c语言printf函数详细解释(c语言里面printf的用法)

1.printf()简介printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文...

2023-06-03 13:11:54查看全文 >>

c语言中printf怎么使用(c语言中printf的使用规则)

c语言中printf怎么使用(c语言中printf的使用规则)

printf(格式控制,输出项);一般调用形式printf("%d,%d\n",a,b);~①格式字符%...

2023-06-03 13:38:18查看全文 >>

c语言printf函数的使用方法(c语言源码中printf怎么定义)

c语言printf函数的使用方法(c语言源码中printf怎么定义)

程序输入与输出当我们操作一个linux终端的时候,执行linux命令程序,可以看到命令的输出信息,或者要求输入数据。那么...

2023-06-03 13:43:06查看全文 >>

c语言printf例子(c语言printf能加什么)

c语言printf例子(c语言printf能加什么)

printf 是C语言非常有用的一个函数,也是我们入门学习C语言的第一个函数。掌握 printf 的格式化输出,对后续的...

2023-06-03 13:40:22查看全文 >>

c语言printf函数用不了(c语言中printf函数的作用)

c语言printf函数用不了(c语言中printf函数的作用)

很多初次学习C语言的同学总会犯这样那样的错误,虽然C语言编程在语法方面的宽松给编程人员留下了很大的自由发挥的余地,但正是...

2023-06-03 13:36:22查看全文 >>

c语言的fprintf用法(c语言中fprintf什么意思)

c语言的fprintf用法(c语言中fprintf什么意思)

原函数:int fflush(FILE *stream)函数说明: int fflush(FILE *stream)流刷...

2023-06-03 13:42:59查看全文 >>

c语言中fprintf怎么用(c语言fprintf和fwrite)

c语言中fprintf怎么用(c语言fprintf和fwrite)

谈到文件,先了解下什么是文本文件和二进制文件的区别吧!1、文本文件:存储时是将字符的ASCII值存在磁盘中,取的时候将数...

2023-06-03 13:57:10查看全文 >>

杀戮天使大结局解析(杀戮天使漫画结局)

杀戮天使大结局解析(杀戮天使漫画结局)

var vote_init_script = document.getElementById("vote_init_no...

2023-06-03 13:22:10查看全文 >>

文档排行