精华内容
下载资源
问答
  • printf的用法

    2016-10-28 15:42:23
    由于一直以来使用的都是c++中的输出,对printf的用法并不是很熟悉,但是很多地方又会用到,所以就进行深入了解了一下。 printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。 调用格式:...

    由于一直以来使用的都是c++中的输出,对printf的用法并不是很熟悉,但是很多地方又会用到,所以就进行深入了解了一下。

    printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

    调用格式:printf("<格式化字符串>",<参量表>)

    格式化字符串用于指定输出格式。格式化字符串可由格式字符串非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。

    非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

    功能:C语言中产生格式化输出的函数(定义在stdio.h中),向未重定向终端(显示器、控制台等)输出字符。

     

    格式字符

    意义

    "%d" "i"

    按十进制形式输出带符号整数(正数不输出符号)

    "%ld"

    按十进制形式输出长整型

    "%u"

    按十进制形式输出无符号整数

    "%f"

    按浮点数输出

    "%c"

    按字符型(单个字符)输出

    "%s"

    按字符串输出

    "%e""E"

    按指数形式的浮点数输出

    "%x""%X"

    按十六进制形式输出无符号整数(不输出前缀0x

    "%o"

    按八进制形式输出无符号整数(不输出前缀o

    "%p"

    16进制形式输出指针

    "%g""%G"

    自动选择合适的表示法

    "%n"

    到此字符之前为止,一共输出的字符个数,不输出文本

    "%%"

    输出 %

     

    注:对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数六位。

    对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。

     

     

    1. %”和字母之间插入数字表示最大场宽。

       1) 如:%3d表示输出3位整型数,不够3位右对齐

            %3.2f 表示场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐

            %3s 表示输出8个字符的字符串,不够8个字符右对齐。如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。

        2 对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。

        3若想要再输出值前加一些0,就应该在场宽项前加个0。如:%03d 表示在输出一个小于4位的数值时,将会在前面补0使其总宽度为3位。

        4如果用浮点数表示字符或整型量的输出格式,小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。如:%3.9s 表示显示一个长度不小于3且不大于9的字符串。若大于9,则第9个字符以后的内容将被删除。

     

    2. "%"和字母之间加入标志字符,可以控制输出对齐方式。加-”表示输出为左对齐,否则为右对齐。如:%-3d 表示输出3位整数左对齐

     

    标志

     意义

    -

    结果左对齐,右边填空格(默认右对齐)

    +

    输出符号(正号或负号)

    空格

    输出值为正时冠以空格,为负时冠以负号

    #

    csdu类无影响

    oxX类,在输出时加前缀o0x0X

    x类,在输出时加前缀0x

    eEgGf类,一定使用小数点

    gG时,尾部的0保留

     

    符号

    意义

    符号

    意义

    \n

    换行

    \b

    Backspace

    \f

    清屏并换页

    \r

    回车

    \t

    Tab

    \"

    双引号

    \?

    文本问号

    \'

    单引号

    \\

    反斜杠

    \xhh(如:\x20)

    ASCII字符(HEX

    \ooo(如\024)

    ASCII字符(OCX

    \xhhh

    宽字符(2字节HEX

     

     

    展开全文
  • Printf的用法

    2017-03-24 20:44:16
    printf()函数是最常用格式化输出函数,其原型为:  int printf( char * format, ... ); printf()会根据参数 format 字符串来转换并格式化数据,然后将结果输出到标准输出设备(显示器),直到出现字符串结束...


    头文件:#include <stdio.h>



    printf()函数是最常用的格式化输出函数,其原型为:
        int printf( char * format, ... );

    printf()会根据参数 format 字符串来转换并格式化数据,然后将结果输出到标准输出设备(显示器),直到出现字符串结束('\0')为止。

    参数 format 字符串可包含下列三种字符类型:

    • 一般文本,将会直接输出
    • ASCII 控制字符,如\t、\n 等有特定含义
    • 格式转换字符

    格式转换为一个百分比符号(%)及其后的格式字符所组成。一般而言,每个%符号在其后都必需有一个参数与之相呼应(只有当%%转换字符出现时会直接输出%字符),而欲输出的数据类型必须与其相对应的转换字符类型相同。

    ********************************************************************************************************************************************************

    printf()格式转换的一般形式如下:
        %(flags)(width)(. prec)type
    以括号括起来的参数为选择性参数,而%与type 则是必要的。


    1.flags 有下列几种情况
    • +  一般在打印负数时,printf ()会加印一个负号,整数则不加任何负号,此旗标会使得在打印正数前多一个正号 (+)。
    • #  此旗标会根据其后转换字符的不同而有不同含义。当在类型为o 之前 (如%#o),则会在打印八进制数值前多印一个o。而在类型为x 之前 (%#x)则会在打印十六进制数前多印'0x',在型态为e、E、f、g 或G 之前则会强迫数值打印小数点。在类型为g 或G 之前时则同时保留小数点及小数位数末尾的零。
    • 0  当有指定参数时,无数字的参数将补上0。默认是关闭此旗标,所以一般会打印出空白字符。

    2.width 为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。


    3.prec 有几种情况:

    • 正整数的最小位数
    • 在浮点型数中代表小数位数
    • 格式代表有效位数的最大值
    • 在%s 格式代表字符串的最大长度
    • 若为×符号则代表下个参数值为最大长度

    下面介绍 type 的几种形式:
    1) 整数
    • %d  整数的参数会被转成有符号的十进制数字
    • %u  整数的参数会被转成无符号的十进制数字
    • %o  整数的参数会被转成无符号的八进制数字
    • %x  整数的参数会被转成无符号的十六进制数字,并以小写abcdef 表示
    • %X  整数的参数会被转成无符号的十六进制数字,并以大写ABCDEF 表示浮点型数
    • %f double  型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入
    • %e double  型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e 来表示
    • %E 与%e 作用相同,唯一区别是指数部分将以大写的E 来表示
    • %g double  型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据打印的数值及所设置的有效位数来决定。
    • %G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

    2) 字符及字符串
    • %c 整型数的参数会被转成unsigned char 型打印出
    • %s 指向字符串的参数会被逐字输出,直到出现NULL 字符为止
    • %p 如果是参数是"void *"型指针则使用十六进制格式显示


    【返回值】printf成功则返回写入的字符数目。

    如果发生写入错误,将会设置文件错误标志(可通过 ferror() 检测),并返回一个负数。

    如果在写入宽字符时一个多字节的字符发生编码错误,那么 errno 将被设置为 EILSEQ,并返回一个负数。

    printf( format, ... ) 等价于 fprintf(stdout, format, ...),更多信息请参考 fprintf() 函数。


    #include <stdio.h>
    int main()
    {
        printf ("Characters: %c %c \n", 'a', 65);
        printf ("Decimals: %d %ld\n", 1977, 650000L);
        printf ("Preceding with blanks: %10d \n", 1977);
        printf ("Preceding with zeros: %010d \n", 1977);
        printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
        printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
        printf ("Width trick: %*d \n", 5, 10);
        printf ("%s \n", "A string");
        return 0;
    }

    输出结果:
    Characters: a A
    Decimals: 1977 650000
    Preceding with blanks:       1977
    Preceding with zeros: 0000001977
    Some different radices: 100 64 144 0x64 0144
    floats: 3.14 +3e+000 3.141600E+000
    Width trick:    10
    A string




    展开全文
  • printf 的用法

    2014-07-11 15:55:43
    printf("你好\n"); printf("\" \\ %% \n");//" \% printf("abc\rxy\n");//xyc printf("%f %g\n", 1.2f, 1.2f);//1.20000 1.2 printf("%lf

    #include <stdio.h>
    int main() {
    printf("你好\n");
    printf("\" \\ %% \n");//" \%
    printf("abc\rxy\n");//xyc
    printf("%f %g\n", 1.2f, 1.2f);//1.20000 1.2
    printf("%lf %lg\n", 1.2, 1.2);//1.20000 1.2
    printf("%c\n", 'a');//a
    printf("%3d\n", 7); //强制占三个位置
    printf("%03d\n", 7); //空位置写0
    printf("%-3d你好\n", 7); //-表示左对齐
    printf("%7.2f\n", 1.2f); //7表示一共占7个位置,.2表示小数点后占两个位置
    printf("%lf\n", 4); //占位符必须和数字匹配
    return 0;
    }
    展开全文
  • Java中的printf的用法

    2017-07-13 19:43:16
    Java中的printf的用法目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数

    Java中的printf的用法

    目前printf支持以下格式: 
              %c        单个字符 
              %d        十进制整数 
              %f        十进制浮点数 
              %o        八进制数 
              %s        字符串 
              %u        无符号十进制数 
              %x        十六进制数 
              %%        输出百分号% 
    
    printf的格式控制的完整格式: 
    %  -  0  m.n  l或h  格式字符 
    
    下面对组成格式说明的各项加以说明: 
    ①%:表示格式说明的起始符号,不可缺少。 
    ②-:有-表示左对齐输出,如省略表示右对齐输出。 
    ③0:有0表示指定空位填0,如省略表示指定空位不填。 
    ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。 
    ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。 
    
    --------------------------------------- 
    格式字符 
    格式字符用以指定输出项的数据类型和输出格式。 
    ①d格式:用来输出十进制整数。有以下几种用法: 
      %d:按整型数据的实际长度输出。 
      %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 
      %ld:输出长整型数据。 
    ②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。 
    例: 
       main() { 
         int a = -1; 
         printf("%d, %o", a, a); 
       } 
      运行结果:-1,177777 
      程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。 
    ③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。 
    ④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。 
    ⑤c格式:输出一个字符。 
    ⑥s格式:用来输出一个串。有几中用法 
      %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。 
      %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。 
      %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 
      %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。 
      %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。 
    ⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法: 
      %f:不指定宽度,整数部分全部输出并输出6位小数。 
      %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 
      %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。 
    ⑧e格式:以指数形式输出实数。可用以下形式: 
      %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。 
      %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。 
    ⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。 
    
    --------------------------------------- 
    关于printf函数的进一步说明: 
    如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如: 
    printf("%f%%", 1.0/3); 
    输出0.333333%。 
    
    --------------------------------------- 
    对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位. 
    对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位. 
    
    ######################################拾遗######################################## 
    由高手指点 
    对于m.n的格式还可以用如下方法表示(例) 
    char ch[20]; 
    printf("%*.*s\n",m,n,ch); 
    前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。 
    
    
    -------------------------------------------------------------------------------- 
    今天又看到一种输出格式 %n 可以将所输出字符串的长度值赋绐一个变量, 见下例: 
    
    int slen; 
    
    printf("hello world%n", &slen); 
    
    执行后变量被赋值为11。 
    
    
    不记得的时候,看看还是很有帮助的,特别是scanf的格式化输入,让我大汗,以前对其理解太少了。原来正则也可以在里面使用。 
    
    自己在阅读源码的时候,也发现了一些上面所谓提及的。慢慢积累下来,供自己和再看的读者享用。 
    
    《UNIX系统编程》P9页(英文版P15): 
    
    fprintf(stderr, "a at %p and\nx at %p\n", (void *)a, (viod *)&x); 
    
    其中提及了%p,自己理解为打印指针地址的格式。 
    

    public class TestPrintf { 
    public static void main(String[] args) { 
    //定义一些变量,用来格式化输出。 
    double d = 345.678; 
    String s = "你好!"; 
    int i = 1234; 
    //"%"表示进行格式化输出,"%"之后的内容为格式的定义。 
    System.out.printf("%f",d);  //"f"表示格式化输出浮点数。 
    System.out.println(); 
    System.out.printf("%9.2f",d);   //"9.2"中的9表示输出的长度,2表示小数点后的位数。 
    System.out.println(); 
    System.out.printf("%+9.2f",d);  //"+"表示输出的数带正负号。 
    System.out.println(); 
    System.out.printf("%-9.4f",d);  //"-"表示输出的数左对齐(默认为右对齐)。 
    System.out.println(); 
    System.out.printf("%+-9.3f",d); //"+-"表示输出的数带正负号且左对齐。 
    System.out.println(); 
    System.out.printf("%d",i);  //"d"表示输出十进制整数。 
    System.out.println(); 
    System.out.printf("%o",i);  //"o"表示输出八进制整数。 
    System.out.println(); 
    System.out.printf("%x",i);  //"d"表示输出十六进制整数。 
    System.out.println(); 
    System.out.printf("%#x",i); //"d"表示输出带有十六进制标志的整数。 
    System.out.println(); 
    System.out.printf("%s",s);  //"d"表示输出字符串。 
    System.out.println(); 
    System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s); 
    //可以输出多个变量,注意顺序。 
    System.out.println(); 
    System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s); 
    //"X$"表示第几个变量。 
    } 
    } 
    

    转载至:http://heidian.iteye.com/blog/404632

    展开全文
  • Java中printf的用法总结

    2020-03-16 18:28:00
    Java中printf的用法总结 1 2020-03-16 18:28 65 人阅读 0 条评论 printf的格式控制的完整格式:% - 0 m.n l或h格式字符下面对组成格式说明...
  • 本次教学的名称是有关scanf与printf的用法心得”,要求与目标也是能够较多得让自己去了解相关内容,并尽量掌握一些用法。 printf称为格式输出函数,它的最后一个字母f的意思是格式format,它的作用是按照指定的格式...
  • L-C-003 printf的用法

    2020-08-03 18:42:07
    在C语言的学习过程中,常常会用到printf进行用户与计算机的交互,所以接下来是在C语言中printf的用法。 一共有4种用法: printf("输出字符串"); 类似于之前的 Hello World! ,可以对内部文本完全的输出。 printf(...
  • **scanf和printf的用法**

    2020-12-31 23:08:21
    scanf和printf的用法 printf是标准输出函数 scanf是标准输入函数 printf的格式为printf(“输出内容”); scanf的格式为scanf(“输入控制符”,输入的变量地址); &n表示变量n的地址 &表示取址符 用在变量前...
  • 1. printf 的用法

    2014-05-11 18:42:00
    1. printf 的用法 1.1 printf函数的定义如下所示:int printf(char *format, arg1, arg2, ...);该函数是一个可变参数函数,在输出格式 format 的控制下,将其参数进行转换与格式化,并在标准输出设备上打印出来。它的...
  • Java中printf的用法

    2012-09-11 12:47:25
    java中的printf的用法  目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号% printf的格式控制的完整格式...
  • printf的用法总结

    2021-01-26 17:27:45
    printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,...
  • 目前printf支持以下格式:%c 单个字符%d 十进制整数%f 十进制浮点数%o 八进制数%s 字符串%u 无符号十进制数%x 十六进制数%% 输出百分号%printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的...
  • scanf与printf的用法

    2020-10-20 07:33:10
    文章目录前言一、scanf与printf二、使用方法1、printf的使用方法2、scanf的使用方法总结 前言 学习c语言编程,必不可少的操作就是键盘输入与屏幕输出。今天我想讲讲自己对scanf与printf使用的看法 一、scanf与...
  • scanf和printf的用法

    2020-10-20 16:31:16
    之前的作业中有用到scanf以及相关的用法 include <stdio.h> int main(void) { int i; scanf("%d", &i); //&i 表示变量 i 的地址,&是取地址符 printf(“i = %d\n”, i); return 0; } 输入与输
  • c51 printf的用法

    2015-12-09 21:03:00
    keil的官方网站关于printf的参考 http://www.keil.com/support/man/docs/c51/c51_printf.htm 转载于:https://www.cnblogs.com/jingyue/p/5034237.html
  • printf的格式控制的完整格式:% - 0 m.n l或h格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,316
精华内容 1,726
关键字:

printf的用法