printf()和scanf()的*修飾符
如果你不想預先設置字段的寬度,想通過程序來進行設定,則可以可以使用“*”來進行修飾字段的寬度,前提是在程序中要包含“*”和參數對應的值(比如%*d,那麽參數應該包含*和%d的值)。不僅如此,*還可以在程序中來去確定浮點型數字的精度和字段寬度。
precision 精度
width 寬度
printf()的使用*修飾符樣例:
1 #include<stdio.h>
2 int main()
3 {
4 unsigned width,precision;
5 int number=256;
6 float weight=242.5;
7
8 printf("Enter a field width:\n");
9 scanf("%d",&width);
10 printf("The number is :%*d:\n",width,number);/*width:字段寬度*/
11 printf("Now enter a width and a precision:\n");
12 scanf("%d %d",&width,&precision);
13 printf("Wight = %*.*f\n",width,precision,weight);
14 printf("Done!\n");
15
16 return 0;
17 }
18 /*輸出樣例
19
20 Enter a field width:
21 6
22 The number is : 256:
23 Now enter a width and a precision:
24 8 3
25 Wight = 242.500
26 Done!
27
28 這裏用戶輸入了6,則字段寬度變成了6,
29 下面輸入的8和3分別表示為,字段寬度為8,精度為小數點后三位 。
30 */
scanf()使用*修飾符的樣例:
1 #include<stdio.h>
2 int main()
3 {
4 int num;
5
6 printf("Please enter three integers:\n");
7 scanf("%*d %*d %d",&num);
8 printf("The last integer was %d\n",num);
9
10 return 0;
11 }
12 /*輸出樣例
13 13
14 14 Please enter three integers:
15 15 2013 2014 2015
16 16 The last integer was 2015
17 17
18 18 這裏用戶輸入三個整形數字,最後只輸出了2015
19 19 在scanf中使用*修飾符放在%和轉換字符之間,scanf會自動跳過相應的輸入項
20 20
21 21 */
關於printf()的輸出tips:
爲了使輸出的形式更加美觀整潔,可是適當的修改字段寬度
1 #include <stdio.h>
2 int main()
3 {
4 int num1=21,num2=559,num3=7;
5 int num4=1,num5=5678,num6=770;
6 int num7=879,num8=12,num9=3;
7 printf("%d %d %d\n",num1,num2,num3);
8 printf("%d %d %d\n",num4,num5,num6);
9 printf("%d %d %d\n",num7,num8,num9);
10 return 0;
11 }
12 /*
13 輸出樣例
14 15 21 559 7
16 1 5678 770
17 879 12 3
18 19 排列比較亂,不是很整齊
20 */
修改後:
1 #include <stdio.h>
2 int main()
3 {
4 int num1=21,num2=559,num3=7;
5 int num4=1,num5=5678,num6=770;
6 int num7=879,num8=12,num9=3;
7 printf("%9d %9d %9d\n",num1,num2,num3);
8 printf("%9d %9d %9d\n",num4,num5,num6);
9 printf("%9d %9d %9d\n",num7,num8,num9);
10 return 0;
11 }
12 /*
13 輸出樣例
14
15 21 559 7
16 1 5678 770
17 879 12 3
18
19 可以整齊排列
20
21 */
printf()和scanf()的*修飾符的更多相关文章
- C的printf与scanf的用法
之前没学过C语言,只学过C++,所以就来自学下C语言了,其实个人认为C与C++的区别很小,基本上就是printf与scanf这点输出和输入的区别了,如果还有什么区别的话那就是要包含的头文件是不同的.比 ...
- printf与scanf的返回值、注意点
printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...
- printf和scanf
一 printf和scanf(printf和scanf是c语言中的输入输出库函数) printf(”格式控制“,输出列表) <1>格式控制 其中包含 格式声明(%+相应格式对应字母).转义 ...
- HTML: css 修飾文本和字體
因爲這個我認爲不用記,所以關於css 修飾文本&字體的屬性只需要打開css手冊,找到(屬性 > 文本) & (屬性 > 字體)翻看即可. 關於字體屬性: Propertie ...
- 【转】stm32CubeMx上移植自己的printf()和scanf()函数
要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中.重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同名字的函数 ...
- 数据类型、常量、变量、printf、scanf和运算符
数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式. C语言中有5大数据类型:基本类型.构造类型.指针类型.空类型.定义类型. C语言 ...
- 重学C语言 -- printf,scanf
printf(); 用来显示格式串的内容 注意: 参数不可以换行,否则会出一个警告. 格式串中占位符比表达式数量多 会显示一个无意义值 格式串中占位符比表 ...
- C++中printf和scanf的用法
(一)printf的用法 printf:按格式打印,向控制台输出.print:打印 ,f:formate,格式化. 在使用printf向控制台输出时,不建议使用中文字符串,中文字符串的问题比较复杂,有 ...
- printf()与 scanf()
一直以来就没有认真看过控制台输入输出的格式,现今找了一些材料,分享如下: 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ ...
- 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
printf语法: #include <stdio.h>int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式 ...
随机推荐
- 4.Future对象
asyncio.Future对象 Future是Task类的基类 Task对象内部await结果的处理是基于Future对象来的 async def main(): # 获取当前事件循环 loop = ...
- 14.api根路由
我们可以通过使用超链接来提高我们APi的内聚力和可发现性 一.为我们的API创建一个根路径 我们的视图有很多个url,但是没有一个入口点,可以使用@api_view创建一个根路径 #views.p ...
- Vitepress搭建组件库文档(下)—— 组件 Demo
上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ...
- idea如何生成jar包
最近在研究RMI反序列化命令执行的漏洞,让我这个java新手吃尽了苦头,能多学习一些是一些吧. 记录一下写好的java文件生成jar包的过程. 环境: Win10,jdk1.7, idea2016.2 ...
- G1 垃圾收集器深入剖析(图文超详解)
G1(Garbage First)垃圾收集器是目前垃圾回收技术最前沿的成果之一. G1 同 CMS 垃圾回收器一样,关注最小时延的垃圾回收器,适合大尺寸堆内存的垃圾收集.但是,G1 最大的特点是引入分 ...
- 动态爱心-详细教程(小白也会)(HTML)
动态爱心 超级超级超级简单!!!赶紧做给你们的"Ta"看吧! (最后有详细步骤) 视频效果: 话不多说直接上代码 点击查看代码 <!DOCTYPE HTML PUBLIC & ...
- IOT黑客入门篇之初探Badusb
什么是Badusb? BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...
- Redis集群研究和实践(基于redis 3.2.5)(一)
前言 Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到广泛的使 用. Redis在2015年发布了3.0.0,官方支持了redis cluster.至此结束了redis ...
- 谷歌、微软、Meta?谁才是 Python 最大的金主?
你知道维护 Python 这个大规模的开源项目,每年需要多少资金吗? 答案是:约 200 万美元! PSF(Python 软件基金会)在 2022 年 6 月发布了 2021 的年度报告,其中披露了以 ...
- Multipass,本地轻量级Linux体验!
Multipass介绍 Multipass 是由Ubuntu官方提供,在Linux,MacOS和Windows上快速生成 Ubuntu虚拟机 的工具.它提供了一个简单但功能强大的CLI,可让我们在本地 ...