c语言的基本类型及输入输出占位符

news/2025/1/12 22:20:50/文章来源:https://www.cnblogs.com/dzystudy/p/18667476

基本类型

c语言的基本类型:int 【long、short、unsigned、signed(c90)】、char、float、double、_Bool【布尔值】、_complex、_Imaginary【复数和虚数】

输入输出

printf

printf

标志字符

标志 含义
- 转换的结果在字段内左对齐
+ 有符号的转换结果总是以+或者-开始
空格 如果有符号转换的第一个字符不是符号,或者有符号转换不产生任何字符,则在结果前加一个空格。如果空格和+同时出现,空格标志将被忽略
# 结果被转换成另一种形式
0 对于 d,i,o,u,x,X,a,A,e,E,f,F,g,G 的转换,前导零(跟随在符号或基底表示后面)用于填充字段宽度,而不是执行空格填充,除非转换无穷大或非数值。

长度修饰符

修饰符 含义
hh 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 signed charunsigned char 实参(实参将根据整型提升而提升,但其值在打印之前应当转换为 signed char 或 unsigned char);或者后面的 n 转换说明符应用于指向 signed char 实参的指针。
h 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 short intunsigned short int 实参(实参将根据整型提升而提升,但其值在打印前应当转换为 short int 或 unsigned short int);或者后面的 n 转换说明符应用于指向 short int 实参的指针。
l 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 long int 或 unsigned long int 实参;或者后面的 n 转换说明符应用于指向 long int 实参的指针;或者后面的 c 转换说明符应用于 wint_t 实参;或者后面的 s 转换说明符应用于指向 wchar_t 实参的指针;对后面的 a,A,e,E,f,F,g 或 G 转换说明符没有影响。
ll 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 long long int 或 unsigned long long int 实参;或者后面的 n 转换说明符应用于指向 long long int 实参的指针。
j 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 intmax_t 或 uintmax_t 实参;或者后面的 n 转换说明符应用于指向 intmax_t 实参的指针。
z 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 size_t 或相应的有符号整数类型实参;或者后面的 n 转换说明符应用于指向与 size_t 相对应的有符号整型实参的指针。
t 指定后面的 d,i,o,u,x 或 X 转换说明符应用于 ptrdiff_t 或相应的无符号整型实参;或者后面的 n 转换说明符应用于指向 ptrdiff_t 实参的指针。
L 指定后面的 a,A,e,E,f,F,g 或 G 转换说明符应用于 long double 参数。

转换说明符

说明符 含义
d,i int实参被转换成带符号的十进制形式,格式为[-]dddd,精度指定最少要输出的数字位数;如果要转换的值可以用更少的数字表示,则用前导零扩充。默认精度为1。
o,u,x,X unsigned int实参被转换成无符号八进制(o),无符号十进制(u),或无符号十六进制表示法(x或X)格式为dddd。字母abcdef用x转换,字母 ABCDEF 用于 X 转换。精度指定最少要输出的数字位数;如果要转换的值可以用更少的数字表示,则用前导零扩充。默认精度为1。使用精度为零对零值进行转换的结果是没有字符。
f,F 表示浮点数的double实参被转换[-]ddd.ddd样式的十进制表示法,小数位数由精度指定。如果缺省精度,则默认值为6。如果精度为0且未指定#标志,则不会出现小数点字符。
e,E 表示浮点数的double实参被转换成[-]ddde±dd样式,在小数点字符之前有一个数字(如果实参是非零,则为非零),小数点后的位数取决于精度;如果缺省精度,则默认值为6。如果精度为零且未指定#标志,则不会出现小数点。该值四舍五入到合适的数位。E转换说明符使用带E的数字而不是带e的数字引入指数。指数总是包含两位数字,并且只包含两位数字。
g,G 会自主选择【f,F e,E中】合适的表示法输出
c 如果没有l长度修饰符,则将int实参转换成unsigned char,并写入结果字符 ; 如果存在 l 长度修饰符,则对 wint_t 实参进行转换,就像使用 ls 转换说明进行转换一样且没有精度,而实参指向含两个元素的 wchar_t 数组的初始元素。第一个元素包含 lc 转换说明的 wint_t 实参,第二个元素是空宽字符。
s 如果没有 l 长度修饰符,实参应当是一个指向字符类型数组初始元素的指针。数组中的字符被写入直到(但不包括)末尾的空字符。如果指定了精度,则写入的字节数不会超过这个数。如果精度没有指定或者大于数组的大小,数组中应该包含一个空字符。 如果存在 l 长度修饰符,则实参必须是指向 wchar_t 类型数组初始元素的指针。数组中的宽字符被转换为多字节字符(每个都像是调用 wcrtomb 函数一样,在转换第一个宽字符之前,由 mbstate_t 对象描述的转换状态初始化为零)直到并包括结束的空宽字符。生成的多字节字符被写入直到(但不包括)末尾的空字符(字节)。如果没有指定精度,数组应该包含一个空宽字符。如果指定一个精度,不会超过那么多字节被写入(包括转换序列,如果有的话),无论何时数组中应当包含一个空宽字符,为了使多字节字符序列长度与精度相等,该函数需要访问数组结束后的一个宽字符。在任何情况下都不会写入部分多字节字符。
p 实参应当是一个指向 void 的指针。指针的值被转换成一个打印字符序列,以一种实现定义的方式。
n 实参应当是一个指向有符号整数的指针,这个实参被写入通过调用 fprintf 写入输出流到目前为止的字符数。不转换实参,只消耗一个实参。如果转换说明包含任何标志、字段宽度或精度,则行为未定义
% 写入一个%字符。不转换参数。完整的转换说明为%%。

scanf

转换说明 含义
%c 把输入解释成字符
%d 有符号十进制整数
%e、%f、%g、%a 把输入解释成浮点数
%E、%F、%G、%A 把输入解释成浮点数
%i 有符号十进制整数
%o 有符号八进制
%p 指针
%s 字符串
%u 无符号十进制
%x X 有符号十六进制
转换说明 含义
* 抑制赋值【用于丢弃输入中的某些数据】 ||| scanf("%2d*%3d%2d",&a,&b);【丢弃输入中的第四-五位字符】
数字 最大字段宽度
hh signed char或unsigned char类型
ll long long或unsigned long long 类型
h、l或L
j
z
t

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/868377.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode:65.有效数字

LeetCode:65.有效数字解题步骤构建一个表示状态的图。遍历字符串,并沿着图走,如果到了某个节点无路可走就返false。遍历结束,如走到3/5/6,就返回true,否则返回false。 extend 2 8 10 16进制 /*** 检查一个字符串是否可以表示为一个有效的数字* @param {string} s - 待检查的…

vs2019项目报错:文件中的类都不能进行设计,解决办法_无法设计基类system.void

文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: Form1 --- 无法设计基类“System.Void”。 出现上述错误,解决办法如下: 关闭所有设计窗口(例如form1.cs(设计)),菜单栏生成,清理解决方案,关闭vs2022,重新启动vs2022打开你的项目…

关于VSCode的c/c++环境配置

适用于Windows的VSCode的c/c++环境配置c/c++环境配置写给 初学C/C++的 保姆级 VSCode环境配置第一步 下载VScode 找到官网点下载就好啦下载安装完成之后,启动!点击左侧“拓展”图标下载中文拓展安装好后重启 别关 留着备用 第二步 下载c/c++编译器 这里我使用MinGw实际上 Mi…

G75 拉插 CF622F The Sum of the k-th Powers

视频链接: The Sum of the k-th Powers - 洛谷 | 计算机科学教育新生态// 拉插 O(klogn) #include <iostream> #include <cstring> #include <algorithm> using namespace std;#define LL long long const int N=1e6+10,mod=1e9+7; int n,k; LL ml[N],mr…

Cline 免费插件 + Qwen2.5 大模型,零经验也能开发“对联王”微信小程序

本文详细介绍了如何利用免费的 Cline 插件辅助开发一款名为“对联王”的微信小程序,特别适合希望在春节期间创作春联的用户。文章不仅比较了 Cline 与 Cursor 两款工具的优缺点,还分享了作者实际操作中的经验和建议。通过具体步骤演示,即使是编程新手也能跟随指导,结合微信…

实现无感刷新Token技术:.Net Web API与axios的完美结合

备忘:https://mp.weixin.qq.com/s?__biz=MjM5MDE5MDM5NA==&mid=2449944319&idx=1&sn=71e84d8ee24769e77b19ca8367333b8f&chksm=b1bb10aa86cc99bc2f20686354e8184023278de74dba857a42d720dc47fabb654c12ecb83524&scene=21#wechat_redirect 我们都知道Toke…

方法引用与lambda底层原理Java方法引用、lambda能被序列化么?

系列文章目录和关于我 0.引入 最近笔者使用flink实现一些实时数据清洗(从kafka清洗数据写入到clickhouse)的功能,在编写flink作业后进行上传,发现运行的时候抛出:java.io.NotSerializableException,错误消息可能类似于 “org.apache.flink.streaming.api.functions.MapFu…

Java方法引用、lambda如何序列化方法引用与lambda底层原理

系列文章目录和关于我 0.引入 最近笔者使用flink实现一些实时数据清洗(从kafka清洗数据写入到clickhouse)的功能,在编写flink作业后进行上传,发现运行的时候抛出:java.io.NotSerializableException,错误消息可能类似于 “org.apache.flink.streaming.api.functions.MapFu…

2024年秋学期 分析力学(理论物理基础Ⅰ)笔记

内容说明舍去了哈密顿雅可比方程等内容 删去了振动相关的一些模型,如参数共振等 授课难度疑似过大了一点(毕竟才半个学期),协变相关内容疑似太tm多了 有心力场模块笔记有所省略,部分笔记不排除记录有误的可能性 部分章节间未换页笔记正文拉格朗日力学及其协变形式 哈密顿力…

find_package()使用指南

关于find_package() 在使用cmake引用第三方库(比如OpenCV)时,我们总是使用find_package()这个指令来实现对包的查找(比如find_package(OpenCV))。调用完后就可以使用一些似乎凭空出现的变量如${OpenCV_INCLUDE_DIRS}以及${OpenCV_LIBS},分别指示了OpenCV库的头文件路径以及各个…

音视频:JavaCV 采集桌面画面并显示的方法

需要进行简单的音视频编程,如果不是特别熟悉C/C++,那么JavaCV应该是比较好的选择,下面记录一下使用JavaCV采集桌面数据的方法。 使用FFmpegFrameGrabber采集桌面数据,指定输入源为desktop,format设置为gdigrab。参考雷神的博客:https://blog.csdn.net/leixiaohua1020/art…

《深入理解Mybatis原理》MyBatis事务管理机制

概述 对数据库的事务而言,应该具有以下几点:创建(create)、提交(commit)、回滚(rollback)、关闭(close)。对应地,MyBatis将事务抽象成了Transaction接口:MyBatis的事务管理分为两种形式:使用JDBC的事务管理机制:即利用java.sql.Connection对象完成对事务的提交(…