如果你不想預先設置字段的寬度,想通過程序來進行設定,則可以可以使用“*”來進行修飾字段的寬度,前提是在程序中要包含“*”和參數對應的值(比如%*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()的*修飾符的更多相关文章

  1. C的printf与scanf的用法

    之前没学过C语言,只学过C++,所以就来自学下C语言了,其实个人认为C与C++的区别很小,基本上就是printf与scanf这点输出和输入的区别了,如果还有什么区别的话那就是要包含的头文件是不同的.比 ...

  2. printf与scanf的返回值、注意点

    printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...

  3. printf和scanf

    一 printf和scanf(printf和scanf是c语言中的输入输出库函数) printf(”格式控制“,输出列表) <1>格式控制 其中包含 格式声明(%+相应格式对应字母).转义 ...

  4. HTML: css 修飾文本和字體

    因爲這個我認爲不用記,所以關於css 修飾文本&字體的屬性只需要打開css手冊,找到(屬性 > 文本) & (屬性 > 字體)翻看即可. 關於字體屬性: Propertie ...

  5. 【转】stm32CubeMx上移植自己的printf()和scanf()函数

    要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中.重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同名字的函数 ...

  6. 数据类型、常量、变量、printf、scanf和运算符

    数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式. C语言中有5大数据类型:基本类型.构造类型.指针类型.空类型.定义类型. C语言 ...

  7. 重学C语言 -- printf,scanf

     printf();    用来显示格式串的内容          注意: 参数不可以换行,否则会出一个警告.       格式串中占位符比表达式数量多     会显示一个无意义值 格式串中占位符比表 ...

  8. C++中printf和scanf的用法

    (一)printf的用法 printf:按格式打印,向控制台输出.print:打印 ,f:formate,格式化. 在使用printf向控制台输出时,不建议使用中文字符串,中文字符串的问题比较复杂,有 ...

  9. printf()与 scanf()

    一直以来就没有认真看过控制台输入输出的格式,现今找了一些材料,分享如下: 1. 格式化规定符     Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ ...

  10. 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

    printf语法: #include <stdio.h>int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式 ...

随机推荐

  1. golang中的一些实用功能

    0.1.索引 https://waterflow.link/articles/1663921524839 通过使用一些通用代码来节省时间,而无需单独实现它们.以下是一些开发中经常会用到的函数实现的列表 ...

  2. 五、Python操作redis

    五.Python操作redis 一.python对redis基本操作 (1)连接redis # 方式1 import redis r = redis.Redis(host='127.0.0.1', p ...

  3. springboot启动问题集合

    1.Cannot resolve org.springframework.boot:spring-boot-autoconfigure:2.3.4.RELEASE 首先出现的就是这个问题,由于我之前使 ...

  4. mitmproxy抓包工具

    中文官网 https://ptorch.com/docs/10/mitmproxy-concepts-options mitmproxy抓包工具 1. mitmproxy 介绍与安装 需要安装pyth ...

  5. 嵌入式-C语言基础:联合体和共用体的概念

    有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间. 结构体和共用体的区别: (1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定. (2)结构体元素互不影响共用体赋值 ...

  6. hwlog----types.go

    // Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package hwlog provides the ...

  7. Go语言核心36讲31

    我们在前两篇文章中讨论了互斥锁.读写锁以及基于它们的条件变量,先来总结一下. 互斥锁是一个很有用的同步工具,它可以保证每一时刻进入临界区的goroutine只有一个.读写锁对共享资源的写操作和读操作则 ...

  8. Go语言核心36讲11

    至今为止,我们讲过的集合类的高级数据类型都属于针对单一元素的容器. 它们或用连续存储,或用互存指针的方式收纳元素,这里的每个元素都代表了一个从属某一类型的独立值. 我们今天要讲的字典(map)却不同, ...

  9. Excel表格复制填写

    =if(A1<>"",A1,"") #A1可以为任意表格单元

  10. mysql管理工具mysqladmin的使用

    1. 初始化密码 mysqladmin -uroot -p'password' password 'new-password' [root@controller3 ~]# yum -y install ...