## printf ##

格式化输出数据

### 相关函数 ###

scanf,snprintf

### 表头文件 ###

```

#include

```

### 定义函数 ###

```

int printf(const char *format, ...);

```

### 函数说明 ###

printf()会根据参数format字符串来转换并格式化数据,然后将结果写出到标准输出设备,直到出现字符串结束('\0')为止。参数format字符串可包含下列三种字符类型

1. 一般文本,伴随直接输出。

2. ASCII控制字符,如\t、\n等。

3. 格式转换字符。

格式转换为一个百分比符号(%)及其后的格式字符所组成。一般而言,每个%符号在其后都必需有一printf()的参数与之相呼应(只有当%%转换字符出现时会直接输出%字符),而欲输出的数据类型必须与其相对应的转换字符类型相同。

Printf()格式转换的一般形式如下

```

%(flags)(width)(.prec)type

```

以中括号括起来的参数为选择性参数,而%与type则是必要的。底下先介绍type的几种形式

**整数**

%d 整数的参数会被转成一有符号的十进制数字

%u 整数的参数会被转成一无符号的十进制数字

%o 整数的参数会被转成一无符号的八进制数字

%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示

%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数

%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。

%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。

%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。

%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。

%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

**字符及字符串**

%c 整型数的参数会被转成unsigned char型打印出。

%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止

%p 如果是参数是“void *”型指针则使用十六进制格式显示。

prec 有几种情况

1. 正整数的最小位数。

2. 在浮点型数中代表小数位数

3. 在%g 格式代表有效位数的最大值。

4. 在%s格式代表字符串的最大长度。

5. 若为×符号则代表下个参数值为最大长度。

width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。

flags 有下列几种情况

```

#NAME?

```

\+ 一般在打印负数时,printf()会加印一个负号,整数则不加任何负号。此旗标会使得在打印正数前多一个正号(+)。

\# 此旗标会根据其后转换字符的不同而有不同含义。当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个o。

而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。

0 当有指定参数时,无数字的参数将补上0。默认是关闭此旗标,所以一般会打印出空白字符。

### 返回值 ###

成功则返回实际输出的字符数,失败则返回-1,错误原因存于errno中。

### 范例 ###

```

#include

main()

{

int i = 150;

int j = -100;

double k = 3.14159;

printf(“%d %f %x\n”,j,k,i);

printf(“%2d %*d\n”,i,2,i); /*参数2 会代入格式*中,而与%2d同意义*/

}

```

### 执行 ###

```

-100 3.14159 96

150 150

```

linux printf 底层api,printf · Linux C API 参考手册 · 看云相关推荐

  1. linux sendto 源码,sendto · Linux C API 参考手册 · 看云

    ## sendto ## 经socket传送数据 ### 相关函数 ### send , sendmsg,recv , recvfrom , socket ### 表头文件 ### ``` #incl ...

  2. linux fcntl注销信号,fcntl · Linux C API 参考手册 · 看云

    ## fcntl ## 文件描述词操作 ### 相关函数 ### open,flock ### 表头文件 ### ``` #include #include ``` ### 定义函数 ### ``` ...

  3. 【C#】什么是Win32 API,为什么使用,参考手册

    前言 作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的. Win32 API作为 Microsoft 32位平台(包括:Windows ...

  4. 致远 linux 视频,致远G6-V5集群部署参考手册-Linux版.pdf

    致远G6-V5 集群部署参考手册-Linux 版 By Yang Fangchao 2016-08-17 20:12:03 Version ID:doc-g6-v570 前言 5 第一章 环境准备 6 ...

  5. api0.php,API接口 · HisiPHP V2开发手册 · 看云

    >[info] 快速导航 [TOC] ## 接口配置 在使用API之前你需要在后台做一个简单的API配置,如下图: ![](https://box.kancloud.cn/e41db0b7698 ...

  6. linux窗帘文件夹命令,窗帘面板和电机 · 控客智能家居 Linux SDK 使用手册 · 看云...

    ## 开关停 | OPEN | CLOSE | STOP | | --- | --- | --- | | 开 | 关 | 停 | ### 请求 ```json { "nodeId" ...

  7. mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...

    标签: Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57 #include #include #in ...

  8. libnuma详解-A NUMA API for LINUX

    参考资料 http://developer.amd.com/wordpress/media/2012/10/LibNUMA-WP-fv1.pdf numa(3) - Linux manual page ...

  9. api有哪些 javasocket_简单hello/hi程序、分析及Java Socket API与Linux Socket API对比

    1.Socket 定义 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他应 ...

最新文章

  1. module ‘tensorflow‘ has no attribute ‘Tensor‘
  2. C++获取当前进程的进程号方法
  3. 一些比较少用但比较有用的linux命令备忘
  4. 线性二次型最优控制器LQR设计原理以及matlab实现
  5. 关于码云的一些基本知识_关于葡萄酒,你必须知道的一些基础知识
  6. LDA中文文本挖掘代码分享
  7. Windows环境搭建Red5流媒体服务器指南
  8. 白帽子讲Web安全(纪念版)笔记
  9. 闲时看看, 比较有益的文章地址
  10. safari 插件(如Xmarks)的设置、登陆、禁用等
  11. 某项目的双代号网络图如下所示_某工程项目的双代号网络计划如下图所示(时间单位:月)。...
  12. 熵值权重法matlab程序,熵值法确定权重原理及Matlab实现
  13. CyberArk被评为2021年Gartner特权访问管理魔力象限的领导者
  14. 前端table打印被截断,如何给每一页都增加表头
  15. NEXTCHIP,北京冠宇铭通科技,祝中国人民早日战胜新冠病毒疫情
  16. 9种AR/VR交互方式解读,让你更加了解透彻AR/VR
  17. 【图形学】18 光照模型(三、镜面反射的Shader实现)
  18. ubuntu14.04下推荐的工具及插件
  19. 华为路由器可以连接几个设备_华为如何设置连接两个无线路由器
  20. 如何减少上下文切换?

热门文章

  1. 百度地图API的第一次接触
  2. 【转】Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
  3. 『C#基础』C#导出Excel
  4. 三个javascript动态输入列表
  5. C++单元测试工具CppUnit使用简介 【转载】
  6. HDU2075 A|B?【水题】
  7. 趣味程序之打印字符图案系列
  8. ubuntu 下的文件校验(md5、sha256)
  9. 基于深度学习的目标检测(object detection)—— rcnn、fast-rcnn、faster-rcnn、SSD、YOLO
  10. 算法 Tricks(四)—— 获取一个数二进制形式第一个不为 0 的位置