`
badboywang
  • 浏览: 64725 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

C/C++格式化字符串说明

    博客分类:
  • vc++
阅读更多

C/C++格式化字符串说明 C++的格式化字符串经常用作格式化数字的输出、字符串合并和转换等等很多场合。

  

1. 格式化规定符

━━━━━━━━━━━━━━━━━━━━━━━━━━

   符号                  作用

──────────────────────────

    %d              十进制有符号整数

    %u              十进制无符号整数

    %f               浮点数

    %s              字符串

    %c              单个字符

    %p              指针的值

    %e              指数形式的浮点数

    %x, %X      无符号以十六进制表示的整数

    %0              无符号以八进制表示的整数

    %g              自动选择合适的表示法

━━━━━━━━━━━━━━━━━━━━━━━━━━

    说明:

    (1). 可以在"%"和字母之间插进数字表示最大场宽。

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

            %9.2f表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,

                  小数点占一位, 不够9位右对齐。

            %8s   表示输出8个字符的字符串, 不够8个字符右对齐。

    如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

    另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

    例如:   %04d  表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。

    如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。

    例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9,  则第9个字符以后的内容将被删除。

    (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

    例如:   %ld   表示输出long整数

            %lf   表示输出double浮点数

    (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。

    例如:   %-7d  表示输出7位整数左对齐

            %-10s 表示输出10个字符左对齐

 

2. 一些特殊规定字符

━━━━━━━━━━━━━━━━━━━━━━━━━━

    字符                           作用

──────────────────────────

     \n                   换行

     \f                   清屏并换页

     \r                   回车

     \t                   Tab符

     \xhh                 表示一个ASCII码用16进表示, 其中hh是1到2个16进制数

━━━━━━━━━━━━━━━━━━━━━━━━━━

 

         char c, s[20], *p;

          int a=1234, *i;

          float f=3.141592653589;

          double x=0.12345678987654321;

          p="How do you do";

          strcpy(s, "Hello, Comrade");

          *i=12;

          c='\x41';

          printf("a=%d\n", a);     /*结果输出十进制整数a=1234*/

          printf("a=%6d\n", a);    /*结果输出6位十进制数a=  1234*/

          printf("a=%06d\n", a);   /*结果输出6位十进制数a=001234*/

          printf("a=%2d\n", a);    /*a超过2位, 按实际值输出a=1234*/

          printf("*i=%4d\n", *i);  /*输出4位十进制整数*i=  12*/

          printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/

          printf("i=%p\n", i);     /*输出地址i=06E4*/

          printf("f=%f\n", f);     /*输出浮点数f=3.141593*/

          printf("f=6.4f\n", f);   /*输出6位其中小数点后4位的浮点数f=3.1416*/

          printf("x=%lf\n", x);    /*输出长浮点数x=0.123457*/

          printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/

          printf("c=%c\n", c);     /*输出字符c=A*/

          printf("c=%x\n", c);     /*输出字符的ASCII码值c=41*/

          printf("s[]=%s\n", s);   /*输出数组字符串s[]=Hello, Comrade*/

          printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello,Co*/

          printf("s=%p\n", s);     /*输出数组字符串首字符地址s=FFBE*/

          printf("*p=%s\n", p);    /* 输出指针字符串p=How do you do*/

          printf("p=%p\n", p);     /*输出指针的值p=0194*/

 

    上面结果中的地址值在不同计算机上可能不同。

 

分享到:
评论

相关推荐

    格C/C++语言式化字符串

    在C/C++编程语言中,格式化字符串是一个强大的工具,用于控制如何打印变量或表达式。格式化字符串通常与`printf`和`scanf`等函数一起使用,它们允许程序员自定义输出或输入的格式,包括数据类型、精度、对齐方式等。...

    c/c++复制字符串到剪粘板中

    例如,可以使用CString类来格式化字符串,然后使用USES_CONVERSION宏来将该字符串转换为char*类型,最后使用SetClipboardData函数将字符串复制到剪粘板中。 剪粘板是Windows操作系统提供的一个临时存储区域,允许...

    C/C++字符串,字符转数字,数字转字符

    在C/C++编程语言中,字符串处理是一个非常基础且重要的知识点。C/C++语言本身并没有专门的字符串变量类型,而是使用字符数组来存放字符串,其中字符串的结束符是“\0”(空字符)。掌握字符与数字之间的转换对于进行...

    c/c++中文帮助文档(API)

    例如,`stdio.h`提供了基本的输入/输出操作,如`printf`用于格式化输出,`scanf`用于从标准输入读取数据;`stdlib.h`包含了内存分配和释放的函数,如`malloc`和`free`;`string.h`提供了字符串操作,如`strcpy`用于...

    C/C++ 字符串转化成数字,支持任意进制

    在C/C++编程中,将字符串... - 考虑输入字符串的安全性,防止缓冲区溢出或格式化字符串漏洞。 理解并掌握这些知识点后,你就能实现一个能够处理任意进制字符串转换为数字的C/C++程序,同时也能应对各种潜在的问题。

    详解C++中十六进制字符串转数字(数值)

    功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,argument,…]);  以上的 format 为 %x 就是将字符串格式化为 16 进制数  例子:  #include void main() { char* p = 0x1a; ...

    字符串格式化需求规格说明书

    1. **格式化字符串的基本语法**:在各种编程语言中,如Python的f-string、C++的printf、Java的String.format等,都有各自的字符串格式化方法。理解这些语法对于正确地构造和输出格式化的字符串至关重要。 2. **变量...

    C语言实现的 json格式字符串与结构体自动相互转化

    标题 "C语言实现的 json格式字符串与结构体自动相互转化" 涉及到的核心知识点是C语言编程、JSON解析和结构体操作。C语言是一种底层编程语言,通常用于系统编程、嵌入式开发等领域,而JSON(JavaScript Object ...

    字符串和数字的转换(c/c++多种实现方式)

    ### 字符串和数字的转换(C/C++多种实现方式) 在C/C++编程语言中,字符串与数字之间的转换是一项常见的需求。例如,在处理用户输入、文件读写或网络通信时,通常需要将数字转换为字符串形式进行存储或传输,反之亦然...

    c++builder6.0 代码格式化工具

    **C++Builder 6.0 代码格式化工具详解** C++Builder 6.0 是一个集成开发环境(IDE),由 Borland 公司(现为 Embarcadero Technologies)开发,专门用于编写 C++ 语言的应用程序。该IDE以其强大的编译器、丰富的...

    C/C++中文函数手册

    例如,`printf`函数用于格式化输出,`scanf`用于格式化输入;`malloc`和`free`则分别用于动态内存分配和释放;`strcpy`和`strcat`处理字符串复制和连接;`printf`家族和`scanf`家族还有许多变体,如`fprintf`和`...

    c++ 实现删除字符串前后指定字符 跨平台运行

    在C++编程中,删除字符串前后指定字符是一个常见的操作,特别是在数据处理或字符串格式化时。这个任务可以通过自定义函数实现,确保代码的跨平台性是C++开发中的一项重要考虑,因为C++标准库虽然提供了许多字符串...

    C++解析json字符串

    7. **序列化与反序列化**:除了解析JSON字符串,C++还可以将C++对象序列化为JSON格式,这在数据存储或网络传输中非常有用。例如,`j.dump()`可以将JSON对象转换为字符串。 8. **自定义类型与JSON**:nlohmann/json...

    C/C++语言参考,CHM格式

    则涉及字符串处理,如strcpy、strlen和strcmp等。在C++中,除了C标准库,还有iostream库用于流式输入输出,algorithm库包含各种排序和查找算法,以及vector、map等容器类,这些都是C++编程的基础。 在C++中,类和...

    C++格式化字符串(格式化规定符)[参考].pdf

    C++中的格式化字符串是程序设计中非常重要的一个概念,特别是在输出数据时,为了保持输出的整洁和统一,我们常常需要使用格式化规定符。在C++中,`printf`函数是最常用的格式化输出函数,它允许我们指定输出的数据...

    c/c++函数大全(标准函数)

    C/C++函数大全通常包括了各种标准库提供的函数,这些函数涵盖了输入/输出、数学运算、字符串处理、内存管理等多个方面。下面将详细介绍一些重要的C/C++标准函数。 1. 输入/输出函数: - `printf` 和 `scanf`:这是...

    vscode使用官方C/C++插件无法进行代码格式化问题

    RawStringFormats是一个clang-format配置项,用于指定字符串格式化的方式。在vscode官方C/C++插件中,RawStringFormats不受支持,因此可能会导致代码格式化出错。 知识点5:解决方案 解决vscode官方C/C++插件无法...

    使用C++实现的字符串拼接函数的实现及讨论详解.docx

    c 字符串拼接C/C++中针对字符串函数的使用过程中,需要格外注意字符串终止符'\0'。字符串结尾处默认带'\0'。 带形参n的库函数可以有效防止因字符串长度过长导致的段错误,建议使用带n的字符串函数。 一 、snprint数...

    C语言检测字符串是否为json字符串

    在进行数据交互时,我们常常需要检查一个字符串是否符合JSON的格式规范,这就是`C语言检测字符串是否为json字符串`这个主题所关注的问题。 C语言本身并不直接支持JSON解析,因此我们需要借助第三方库或者自定义函数...

    C/C++格式化日志库实现代码

    C/C++格式化日志库实现代码详解 C/C++格式化日志库实现代码是指将日志信息格式化输出到指定文件或控制台的过程。该实现代码提供了一个跨平台的日志函数,适用于Linux和Windows等多种操作系统。 日志等级 在日志库...

Global site tag (gtag.js) - Google Analytics