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(格式)给出的格式 ...
随机推荐
- 一篇了解全MVCC
一.什么是MVCC MVCC,全称Multi-Version Concurrency Control,即多版本并发控制,是一种并发控制的方法,一般用在数据库管理系统中,实现对数据库的并发访问,比如在M ...
- 【Serverless】云函数微信小程序
简介 什么是AppGallery Connect云函数 云函数是一项Serverless计算服务,提供FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开发与运维相 ...
- while循环条件不成立却无法跳出死循环的问题
在进入循环的时候,实际上是将A从内存加载到寄存器里面运行的,在整个循环中,A这个变量都只是在读取寄存器里面的值. 而当进入中断的时候,中断里面会从内存加载A到寄存器,修改完之后又存到内存里,然后退出中 ...
- onps栈移植说明(1)——onps栈的配置及裁剪
onps栈的移植涉及几个部分:1)系统配置及裁剪:2)基础数据类型定义:3)RTOS适配层实现:4)编写网卡驱动并注册网卡.本文作为onps栈移植的指导性文件将给出一般性的移植说明及建议,具体的移植样 ...
- go:快速添加接口方法及其实现
问题描述 在大型项目中,通常存在多个模块,模块对外暴露的功能通常是通过接口封装,这样可以明确模块的功能,有效降低模块与模块之间的耦合度,同时模块与模块之间进行合理的组装.接口的实现,有时可能存在多个实 ...
- oracle日常命令
---查询锁表(查出后,再执行查询结果进行释放:可多次查询,存在循环锁表的情况)-- select 'alter system kill session '|| ''''|| sess.sid || ...
- elasticsearch多字段聚合实现方式
目录 1.背景 2.实现多字段聚合的思路 3.需求 4.数据准备 4.1 创建索引 4.2 准备数据 5.实现方式 5.1 multi_terms实现 5.1.1 dsl 5.1.2 java 代码 ...
- vue 3.0 常用api 的简介
vue3.0 生命周期 写法一 和vue2.x 一致 区别在于(beforeUnmount.unmount)名称不一样 写法二 在setup 中使用, 需要引用 如: import { onBefor ...
- 关于linux配置java环境变量问题
前言 这几天一直在学java, 所以配置环境变量是必不可少的步骤,然后我简单的研究了一下,当然也只是皮毛而已 环境变量的就近原则 我电脑下载了oracle公司的jdk(手动配置环境变量), 和直接源里 ...
- table 动态隐藏tr行
table: <table style="width:100%" class="table01" cellspacing="1" ce ...