如果你不想預先設置字段的寬度,想通過程序來進行設定,則可以可以使用“*”來進行修飾字段的寬度,前提是在程序中要包含“*”和參數對應的值(比如%*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. debian如何删除无效的应用图标

    1.看/usr/share/applications下是否有xxx.desktop 2.可以到-/.local/share/applications下看是否有xxx.desktop 来源:https: ...

  2. Ant Design Pro:Layout 组件——嵌套布局

    在   BasicLayout.jsx   文件中修改 <ProLayout layout="topmenu" className="chenshuai2144&q ...

  3. python学习——查找计算机中的文件

    # import os # # path = 'C:/Users/admin/Desktop/images' # files = os.listdir(path) # # for f in files ...

  4. (C++) 初始化列表 std::initializer_list

    构造时直接使用初始化列表 T object { arg1, arg2, ... }; (1) T { arg1, arg2, ... } (2) new T { arg1, arg2, ... } ( ...

  5. beanshell报错:Error invoking bsh method: eval解决办法(beanshell 不支持Java中的泛型)

    起因:在beanshell中读取CSV文件中的内容,相同的代码在IDEA中可以执行通过,但是在beanshell中报错: ERROR o.a.j.u.BeanShellInterpreter: Err ...

  6. 【实时数仓】Day04-DWS层业务:DWS设计、访客宽表、商品主题宽表、流合并、地区主题表、FlinkSQL、关键词主题表、分词

    一.DWS层与DWM设计 1.思路 之前已经进行分流 但只需要一些指标进行实时计算,将这些指标以主题宽表的形式输出 2.需求 访客.商品.地区.关键词四层的需求(可视化大屏展示.多维分析) 3.DWS ...

  7. Scanner例题讲解

    Scanner例题讲解 题:输入多个平均数,求其总和与平均数;每输入一个数用回车确认,通过输入非数字来结束输入并输出执行结果  public class Demo05 {     //输入多个平均数, ...

  8. centos7安装MySql8.0.29教程

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying @ 目录 1 安装之前检测系统是否有自带的MySQ ...

  9. element-ui中table表格表头和表格内容都水平居中,以及斑马纹背景颜色修改

    <el-table :data="detalData" stripe //斑马纹 border :header-cell-style="{textAlign: 'c ...

  10. js属性对象的hasOwnProperty( )方法,检测一个属性是否是对象的自有属性

    hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键). 语法: obj.hasOwnProperty(prop) 参数: prop  ...