首页 > 其他分享 >printf()和scanf()的*修飾符

printf()和scanf()的*修飾符

时间:2022-12-21 14:47:49浏览次数:40  
标签:12 21 int scanf 9d width 修飾 printf

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

 

标签:12,21,int,scanf,9d,width,修飾,printf
From: https://www.cnblogs.com/NoldorFromMiddleEarth/p/16996221.html

相关文章

  • 關於scanf()的使用
    要使用scanf函數進行輸入:1.如果用scanf()要輸入讀取基本變量的值,需要加&。2.如果用scanf()讀取的是把字符串讀入字符數組中,則不需要加&1#include<stdio.h>2in......
  • snprintf 函数用法详解
    snprintf(),函数原型为intsnprintf(char*str,size_tsize,constchar*format,...)两点注意:(1)如果格式化后的字符串长度<size,则将此字符串全部复制到str中,并给其......
  • printf你会吗?:-)
    https://cplusplus.com/reference/cstdio/printfAformatspecifierfollowsthisprototype: %[flags][width][.precision][length]specifierpPointeraddressb80000......
  • fprintf()\fscanf()\sprintf() 函数的灵活应用
     fprintf函数和fscanf函数调用方式:fprintf(文件结构指针,格式字符串,输出表列)fscanf(文件结构指针,格式字符串,输出表列) voidmain(){   FILE*pWrite,*pRead; ......
  • 在stm32中使用printf
    记录使用printf的方法1.配置GPIOGPIO_InitTypeDefGPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB2......
  • printf的输出缓冲区问题:\n不加就发不出来
    (29条消息)linux下printf函数为什么不加\n就不能输出相关的内容?_zqx20032009的博客-CSDN博客 fflush(stdout);//刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输......
  • C语言中的vsnprintf函数
    函数原型:intvsnprintf(char*sbuf,size_tn,constchar*format,va_listarg)函数说明:该函数用于向一个字符串缓存区格式化打印字符串,且可以限定打印字符串的最大......
  • 拷贝函数strncpy/snprintf/memcpy性能分析
    目录​​strncpy​​​​snprintf实现拷贝​​​​memcpy​​​​dpdk的rte_memcpy​​​​参考​​strncpysnprintf实现拷贝memcpydpdk的rte_memcpy参考strncpy和snp......
  • printf格式化输出
    1. 2.    ......
  • 【Shell脚本(三) -- echo及printf输出】
    一、Shellecho命令Shell的echo指令用于字符串的输出。命令格式:echostring1.显示普通字符串:echo"Itisatest"echoItisatest加不加引号效果一样2.显示转义字符如......