C语言中的printf与scanf函数

2023-11-13

1. printf函数的格式字符串

① %-md:左对齐,若m比实际少时,按实际输出,不足右补空格

#include<stdio.h>
int main(void){
	int a = 12; 
	printf("%5d\n", a);
	return 0;
} 

输出:

② %md  :右对齐,若m比实际少时,按实际输出,不足左补空格

与上面的%-md类似

③  %m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
  例如: "%7.2s"   输入NAME
  输出"     NA"(五个空格)

#include<stdio.h>
int main(void){
	printf("%s\n", "NAME");
	printf("%7.2s\n", "NAME");
	return 0;
} 

④ %m.nf:输出浮点数,m为宽度,n为小数点右边数位(输出包括小数点的m位数字,不足的话左补空格)
 e.g.  "%3.1f"    输入3852.99
 输出3853.0 

2. printf函数的格式控制的完整格式:
%  -  0  m.n  l 或 h  格式字符
下面对组成格式说明的各项加以说明:
① %:表示格式说明的起始符号,不可缺少。
② -:  有-表示左对齐输出,如省略表示右对齐输出。
③ 0: 有0表示指定空位填0,如省略表示指定空位不填。
④ m.n:m指域宽,即对应的输出项在输出设备上所占的字符数,n指精度,用于说明输出的实型数的小数位数,没有指定n时,隐含的精度为n = 6位。
⑤ l 或 h : l对整型指long型,对实型指double型,h用于将整型的格式字符修正为short型。


3. scanf函数的格式控制符

%  *  m     l或h     格式字符
① 格式字符与printf函数中的使用方式相同,以%d,%o,%x,%c,%s,%f,%e,无%u格式、%g格式

② 可以指定输入数据所占列宽,系统自动按它截取所需数据。如:
scanf( "%3d%3d", &a, &b);
输入:123456
系统自动将123赋给a,456赋给b

③ %后的“*” 附加说明符,用来表示跳过它相应的数据。例如:
scanf( "%2d%*3d%2d", &a, &b);
如果输入如下信息:1234567。将“12 ”赋给a,“67 ”赋给b。第二个数据“345”被跳过不赋给任何变量

④ 输入数据时不能规定精度,例如:
scanf("%6.2f", &a);
是不合法的,不能企图输入:123.45而使a的值为123.45

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中的printf与scanf函数 的相关文章

  • 用VC 6.0实现串行通信的三种方法

    摘要 本文介绍了在Windows平台下串行通信的实现机制 讨论了根据不同的条件用Visual C 设计串行通信程序的三种方法 并结合实际 实现对温度数据的接收监控 在实验室和工业应用中 串口是常用的计算机与外部串行设备之间的数据传输通道 由
  • 深入理解C++中的mutable关键字

    mutalbe的中文意思是 可变的 易变的 跟constant 既C 中的const 是反义词 在C 中 mutable也是为了突破const的限制而设置的 被mutable修饰的变量 将永远处于可变的状态 即使在一个const函数中 我们
  • Win32 Application 、Win32 Console Application、MFC工程项目

    Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序 Win32 Application 是标准 windows程序 完全拥有windows的特性 也即我们常说的窗
  • 转:C语言头文件下包含函数(math.h stdio.h stdlib.h string.h)

    math h常用函数 int abs int x double acos double x double asin double x double atan double x double atan2 double y double x d
  • 堆的用法总结

    堆 heaps 不是容器 而是一种特别的数据组织方式 堆一般用来保存序列容器 堆很重要 很多不同的计算机进程中都使用了它们 为了弄明白堆是什么 首先需要明白树是什么 因此首先说明树这种数据结构是什么 树是分层排列的元素或节点 每个节点有一个
  • C语言变参函数解析

    1 函数声明 首先 要实现类似printf 的变参函数 函数的最后一个参数要用 表示 如 int log char arg1 这样编译器才能知道这个函数是变参函数 这个参数与变参函数的内部实现完全没有关系 只是让编译器在编译调用此类函数的语
  • C语言头插法创建双链表

    1 问题描述 使用头插法创建双链表 2 与单链表不同的是 双链表的结构体中多了一个变量就是指向当前节点的前驱节点 这样我们在循环遍历的时候可以通过当前节点的前驱指针找到前驱节点 在创建双链表的时候比单链表多了一个步骤就是对于前驱指针的操作
  • 将一个链表分为奇偶两个链表

    1 问题描述 设计一个算法 将一个头结点为A的单链表 其数据域为整数 分解成两个单链表A和B 使得A链表只含有原来链表data域为奇数的节点 而B链表只含有原链表中data域为偶数的节点 而且保持原来的顺序 2 思路分析 这个问题不是在线网
  • C中字符串操作

    字符串可以看作一个数组 它的每个元素是字符型的 例如字符串 Hello world n 图示如下 H e l l o w o r l d n 0 15个字符 注意每个字符串末尾都有一个字符 0 做结束符 这里的 0是ASCII码的八进制表示
  • 转:《C++ Templates》读书笔记

    有三种模板参数 形参 1 类型参数 这是使用得最多的 2 非类型参数 3 模板的模板参数 类型参数 类型参数是通过关键字typename或者class引入 关键字后面必须是一个简单的标识符 后面用逗号来隔开下一个参数声明 等号代表接下来的是
  • BMP文件格式详解(BMP file format)

    BMP文件格式 又称为Bitmap 位图 或是DIB Device Independent Device 设备无关位图 是Windows系统中广泛使用的图像文件格式 由于它可以不作任何变换地保存图像像素域的数据 因此成为我们取得RAW数据的
  • C++基本语法

    C 中构造函数的调用 class Type void main Type obj ok 编译器调用了默认的构造函数 Type obj1 Type ok 显示调用了默认的构造函数 Type obj3 error 其是声明了一个无参并返回Typ
  • 指针与const限定符

    const限定符和指针结合起来常见的情况有以下几种 const int a int const a 这两种写法是一样的 a是一个指向const int的指针 a所指向的内存单元不可改写 所以 a 是不允许的 但a可以改写 所以a 是允许的
  • C语言中的printf与scanf函数

    1 printf函数的格式字符串 md 左对齐 若m比实际少时 按实际输出 不足右补空格 include
  • C语言中的.c 和.h 文件区别

    本文的大部分内容来自网上 经过自己的理解和总结整理而来 希望对和自己有同样的困惑的人予以参考 感谢那些网上的大牛们 是你们的无私 让我学到了很多的东西 予人玫瑰 手留余香 文章转载请注明出处 首先我们先看一下这个例子 由于我也不知道到底那个
  • 拷贝构造函数和赋值构造函数声明为私有的作用

    转贴地址 http blog csdn net winer632 archive 2009 01 12 3762292 aspx 每个类只有一个赋值函数 由于并非所有的对象都会使用拷贝构造函数和赋值函数 程序员可能对这两个函数有些轻视 请先
  • bmp文件

    文件格式 格式组成 典型的BMP 图像文件由四部分组成 1 位图头文件数据结构 它包含BMP图像文件的类型 显示内容等信息 2 位图信息数据结构 它包含有BMP图像的宽 高 压缩方法 以及定义颜色等信息 3 调色板 这个部分是可选的 有些位
  • printf()函数

    printf函数对输出表中各量求值的顺序是自右至左进行的 也即程序执行的过程中参数的压栈顺序是从右至左的 并且压栈时压入的是值 因为参数的压栈是在程序的执行过程中 所以即使参数列表中有函数调用则在压栈时也即计算出来 即调用此函数去执行 把得
  • 注册ActiveX控件的几种方法

    使用ActiveX控件可快速实现小型的组件重用 代码共享 从而提高编程效率 降低开发成本 但是ActiveX控件对于最终用户并不能直接使用 因为ActiveX控件必须先在Windows中注册 注册ActiveX控件一般来说有六种途径 它们有
  • VC6.0向工程中添加文件和打开文件出错“"0x5003eaed"指令引用的"0x00000000"内存”解

    据说这个错误是因为和微软的其他软件相冲突了 下面就看看如何解决这个问题 第一步 下载一个FileTool插件 下载的地址 http download microsoft com download vc60ent s1 6 0 w9xnt4

随机推荐

  • Mac如何找到从AppStore下载的正版Xcode安装包

    前言 本文介绍在Mac下如何找到AppStore下载的安装包路径 以及如何提取出来供以后使用 希望对大家有所帮助 前提 想要提取某个安装包 前提是你正在从AppStore安装这个程序 比如你想提取imovie的安装包 前提是你必须正在从Ap
  • Cocos2d-x JSB 自动绑定bindings-generator (以下简称B-G) 使用心得

    文章转载自 http www cocoachina com bbs read php tid 177904 B G 是什么 当使用JSB的时候 如果你想要使用的C 的类或者方法没有在已有JSB中被绑定 这时候 就可以使用B G 它可以生成相
  • 目标检测可视化gt

    xml格式可视化 这里分了两类 1 目标被标注为正矩形 即 xmin ymin xmax ymax 一般的voc数据类型都是这种标注形式 2 目标被标注为具有一定旋转角度的矩形 即 x1 y1 x2 y2 x3 y3 x4 y4 DOTA数
  • 如何将CRM系统上传到服务器,如何将SAP CRM equipment通过中间件上传到ERP系统

    In document Step by step to download equipment from ERP with hierarchy the steps to replicate equipment from ERP to CRM
  • 网页中如何使背景固定位置不变

    网页中如何使背景固定位置不变 在draemweaver中按Ctrl Shift E 新建一CSS样式 new 在background标签里 可以设定背景的各个选项 Background 背景色Background Image 选取你的背景图
  • 用户登录日志表为user_id,log_id,session_id,visit_time

    数据信息 用户登录日志表为user id log id session id visit time 要求 用sql查询近30天每天平均登录用户数量 代码展示 select avg numUser as averageUsers from s
  • MFC干净地删除冗余控件

    1 手动删除 1 首先确定控件有哪些相关的变量和函数 打开 rc2文件在里面删除对应的控件图标 2 打开主对话框头文件 一般类向导生成的函数和变量定义都在头文件的最后一个 public l里 找到生成的变量定义和函数定义将其删除 3 打开对
  • 在ros2下使用ros1_bridge与ros1自定义消息桥接

    在ros2下使用ros1 bridge与ros1自定义消息桥接 示例环境 操作系统 ubuntu 20 04 amd64 ros版本 noetic ros2版本 foxy ros1示例代码 创建ros1的工作空间catkin ws 功能包c
  • AXI4-Stream协议总结

    AXI4 Stream去掉了地址项 允许无限制的数据突发传输规模 一 接口信号描述 信号 源 描述 ACLK 时钟源 全局时钟信号 所有信号在ACLK信号上升沿采样 ARESETn 复位源 全局复位信号 ARESETn低电平有效 TVALI
  • JDBC规范——(8)异常

    当访问一个数据源时发生错误或者警告 JDBC 用 SQLException 这个类及其子类来表示并提供相关的异常信息 8 1 SQLException SQLException 由一下几部分组成 1 描述错误的文本信息 可以通过 SQLEx
  • Aspose功能演示:使用Java以编程方式在 Excel 文件中添加或修改 VBA 宏

    VBA是一种编程语言 用于在 MS Excel 文件中自动执行各种操作 特别是 VBA 宏是用户定义的代码 可加速电子表格操作任务 在本文中 将学习如何以编程方式使用 Excel 文件中的 VBA 宏 最终 将能够 使用 Java 在 Ex
  • 树莓派配置热点(即设置wifi)

    https www raspberrypi org documentation configuration wireless access point routed md 如果官网打不开 看次链接 https qinfeng blog cs
  • rollup常用插件盘点

    1 rollup plugin commonjs 将 CommonJS 模块转换为 ES2015 供 Rollup 处理 rollup plugin commonjs是一个用于将CommonJS模块转换为ES6模块的Rollup插件 它的主
  • Vue组件化学习之scoped

    简介 主要介绍scoped的作用 先弄一个案例 main js 引入vue依赖 import Vue from vue 引入组件App import App from App vue 关闭生产提示 Vue config production
  • pip install -r requirements.txt出现错误解决办法

    pip install r requirements txt安装出现以下错误解决办法如下 PS D YOLO yolov5 master gt pip install r requirements txt Collecting matplo
  • 配置IIS之虚拟目录

    什么是IIS虚拟目录 有什么优点 虚拟目录指在站点下建立一个虚拟子目录 指定一个固定的物理路径做为站点的应用路径 1 虚拟目录与父级站点共用一个应用程序池 例如 站点TestWeb c Inetpub wwwroot TestWeb 下建立
  • 安利一个实用项目--物美智能

    安利一个实用项目 可用于二次开发 官网 项目介绍 项目地址 演示地址
  • Windows 下 Redis 安装与配置 教程

    文章目录 一 Windows 下安装 Redis 的几种方式 1 微软官方维护的 Redis 2 tporadowski 维护的 Redis 3 使用 WSL 安装 Redis 4 使用gcc编译器在Windows下编译redis源码 二
  • USB转串口驱动代码分析

    1 USB插入时 创建设备 DriverObject gt DriverExtension gt AddDevice USB2COM PnPAddDevice 步一 调用USB2COM CreateDeviceObject创建功能设备对象
  • C语言中的printf与scanf函数

    1 printf函数的格式字符串 md 左对齐 若m比实际少时 按实际输出 不足右补空格 include