文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言中多样式的格式控制符的使用详解

2023-03-20 12:03

关注

C语言中的格式控制符类型繁多,虽然格式字符可能就那么几个,但组合起来使得格式控制符变得多样化,这对于C语言初学者来说无疑是一种痛苦,为此我将常见的格式控制符类型及意义总结一下,这些格式符的用法不需要你立即全部掌握,应当在日后的编程实践中逐步掌握。

先来看一个代码示例:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int i;
    int temp=1234;
    int arr[5] = { 34,45,-67,89,-68 };
    printf("%#o\n", temp);
    printf("%lo\n", temp);
    for (i = 0; i < 5; i++)
        printf("%d", arr[i]);
    printf("\n");
    for (i = 0; i < 5; i++)
        printf("%-5d", arr[i]);
    printf("\n");
    for (i = 0; i < 5; i++)
        printf("%+4d", arr[i]);
    printf("\n");
 
    return 0;
}

代码运行结果如下:

从上面代码示例中可以看到,printf函数中的格式字符串有多种不同的组合,不同的组合输出内容也不尽相同,它一般是以%开头的字符串,在%后面跟有各种样式的格式字符,以说明输出数据的类型、形式、长度、小数位数等,其 一般形式如下:

%[标志] [输出最小宽度] [.精度] [长度]

其中[]中表示可选项。各项意义介绍如下:

1.标志:标志字符有-、+、#、空格等四种,其所代表的意义如下:

-和+的代码示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int i;
    int temp = 1234;
    int arr[3] = { 23,45,68 };
    printf("%d\n", temp);
    printf("%+d\n", temp);
    for (i = 0;i < 3; i++)
        printf("%3d", arr[i]);
    printf("\n");
    for (i = 0;i < 3; i++)
        printf("%-3d", arr[i]);
    return 0;
}

运行结果如下:

#: 对o类,输出时添加前缀o;对x类,在输出时添加前缀0x;对e,g,f类,当结果有小数时才给出小数点,对c、s、d、u类无影响。

#的代码示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int temp1 = 1234;
    float temp2 = 3.5;
    printf("%#d\n", temp1);
    printf("%#o\n", temp1);
    printf("%#x\n", temp1);
    printf("%#f\n", temp2);
    return 0;
}

运行结果如下:

2.输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的长度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

3.精度:精度格式符以‘ . ’开头,后跟十进制数。它的含义是:如果输出实数,则表示小数的位数;如果输出的是字符串,则表示输出字符的个数;如果实际位数大于所定义的精度数,则截去超过的部分(四舍五入)。

4.长度:长度格式有h和l两种,h表示按短整型输出,l表示按长整型输出。

叙述了这么多理论知识,相信大家已经对格式字符的多种组合已经有了一个了解,为了让大家对其有一个更加深入的了解,特举一些常用的格式符使用示例如下:

⑴%m.nd: m、n均为正整数,其中m指定输出结果的总位数,n指定实际输出的整数位数。

注意:若整数的实际位数小于n,则用字符0填充;若实际位数大于n,则n不起作用。

代码示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int a = 123;
    int b = -1234;
    printf("%d\n", a);
    printf("%.4d\n", a);
    printf("%5.2d\n", a);
    printf("%.4d\n", b);
    printf("%8.6d\n", b);
    return 0;
}

运行结果如下:

⑵%m.ns: m、n均为正整数。其中m指定输出结果的总位数,n指定实际输出结果的字符个数(从字符串左端截取)。

代码示例如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    printf("%.3s\n", "good");
    printf("%.4s\n", "good");
    printf("%10.4s\n", "good");
    printf("%.8d\n", "good");
    return 0;
}

运行结果如下:

虽然格式控制符组合繁多,但并不需要死记硬背,只需在一定代码训练后掌握其含义即可。

到此这篇关于C语言中多样式的格式控制符的使用详解的文章就介绍到这了,更多相关C语言格式控制符内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯