开发者

C/C++ 格式说明符及其用法

目录
  • 一、基础格式说明符
  • 二、修饰符(用于精细控制格式)
    • 1. 宽度与对齐
    • 2. 精度控制
    • 3. 填充字符
    • 4. 长度修饰符
  • 三、scanf() 的格式说明符
    • 四、代码示例
      • 五、注意事项

        在android C/C++ 中,格式说明符(Format Specifiers)主要用于 printf()scanf() 等输入输出函数中,用于控制数据的格式化输入和输出。以下是常见的格式说明符及其用法:

        一、基础格式说明符

        说明符适用数据类型描述
        %dint十进制整数(带符号)
        %uunsigned int十进制无符号整数
        %ffloat浮点数(默认保留6位小数)
        %lfdouble编程客栈精度浮点数(printf中可用%f代替,但scanf必须用%lf
        %cchar单个字符
        %schar* (C 字符串)字符串(需以 \0 结尾)
        %pvoid*指针地址(十六进制格式,如 0x7ffeeb0b4d60
        %xint, unsigned int十六进制整数(小写字母,如 1a3f
        %X同上十六进制整数(大写字母,如 1A3F
        %o同上八进制整数
        %efloat, double科学计数法(小写 e,如 3.141593e+00
        %E同上科学计数法(大写 E,如 3.141593E+00
        %g/%G同上自动选择 %f%e(根据数值大小决定更紧凑的格式)
        %%-输出百分号 %

        二、修饰符(用于精细控制格式)

        1. 宽度与对齐

        printf("%10d", 123);   // 输出宽度为10,右对齐:"       123"
        printf("%-10d", 123);  // 输出宽度为10,左对齐:"123       "

        2. 精度控制

        printf("%.2f", 3.14159); // 保留2位小数:3.14
        printf("%.5s", "pythonhello world"); // 截取前5个字符:"hello"

        3. 填充字符

        printf("%05d", 42);    // 用0填充宽度5:"00042"

        4. 长度修饰符

        修饰符示例描述
        h%hd, %hushort int / unsigned short
        l%ld, %lulong int / unsigned long
        ll%lld, %llulong long int / unsigned long long
        L%Lf, %Lelong double

        三、scanf() 的格式说明符

        scanf() 中必须严格匹php配数据类型:

        int num;
        scanf("%d", &num);  // 输入整数
        double value;
        scanf("%lf", &value); // 输入双精度浮点数(必须用%lf)

        跳过输入

        scanf("%d %*s %f", &age, &salary); // 跳过中间的字符串输入

        四、代码示例

        #include <stdio.h>
        int main() {
            int num = 42;
            float pi = 3.14159;
            char str[] = "Hello";
            printf("十进制: %d, 十六进制: 0x%x\n", num, num);
            printf("浮点数: %.2f, 科学计数法: %e\n", pi, pi);
            printf("字符串: %s, 地址: %p\n", str, (void*)&num);
            printf("填充示例: %05d\n", num);
            return 0;
        }

        输出android

        十进制: 42, 十六进制: 0x2a

        浮点数: 3.14, 科学计数法: 3.141590e+00

        字符串: Hello, 地址: 0x7ffd5a3d4a4c

        填充示例: 00042

        五、注意事项

        • 类型匹配:格式说明符必须与变量类型严格匹配,否则可能导致未定义行为。
          • 错误示例:printf("%d", 3.14); // 错误!应用 %f
        • 指针与地址%p 需要将指针强制转换为 void*
        • 字符串安全scanf("%s", str) 可能导致缓冲区溢出,建议用 %Ns(如 %10s)限制输入长度。

        到此这篇关于C/C++ 格式说明符的文章就介绍到这了,更多相关C++ 格式说明符内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新开发

        开发排行榜