C语言从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

5.6.1 格式化输出控制符的使用

在C语言中,为了使输出的数据能够便于控制,可以使用特定的输出控制符进行格式化。在实际编程时,常用的输出控制符包括转义字符和数据类型输出控制符。在本小节中,将介绍这些常用输出控制符的功能及其使用方法。

1.转义字符

转义字符是指C语言中能够实现特定功能的输出控制字符。例如,用户在前面实例中常用的控制符“ ”,表示换行符。在本小节中,将主要介绍转义字符的功能和使用方法。

常用的C语言转义字符及其功能如表5.1所示。

表5.1 常用的C语言转义字符

例如,需要在程序中实现不断响铃的功能,则可以使用转义字符“\a”。具体代码如下:

#include <stdio.h> //包含标准输入/输出头文件
main() //主函数开始
{
    int i=0; //定义并初始化一个整型变量i
    while(i<10) //while循环10次
    {
        i+=1; //使变量i自加1
        printf("响铃第%d声\n",i); //输出响铃次数
        printf("\a"); //响铃
    }
    printf("响铃结束\n",i); //输出提示语
    return 0; //程序正常结束
}

在实例程序中,使用一个while结构循环输出响铃及其相应的次数。其中循环变量i的作用是控制响铃的次数。在循环结构中使用代码段“i+=1;”可以使循环不断地进行直到变量i的值等于10为止,即循环了10次。程序运行成功以后,用户可以听到计算机发出的蜂鸣声。在程序的运行界面中,还可以看到输出的响铃次数,如图5.26所示。

图5.26 程序运行结果

注意 如果用户需要使蜂鸣声更明显,可以将while循环结构中的循环次数修改得更多一些。例如,将代码段“while(i<10)”修改为“while(i<100)”。

还可以使用水平制表符“\t”实现输出数据的格式化操作。具体代码如下:

#include <stdio.h> //包含标准输入/输出头文件
main() //主函数开始
{
    int i=0; //定义并初始化一个整型变量i
    while(i<10) //while循环10次
    {
        i+=1; //使变量i自加1
        printf("\t"); //输出水平制表符
        printf("制表符测试!\n",i); //输出字符数据
    }
    printf("数据输出结束\n",i); //输出提示语
    return 0; //程序正常结束
}

实例代码的主要功能是将输出的数据在水平方向上进行制表控制,其运行结果如图5.27所示。

图5.27 程序运行结果

注意 在实际使用中,必须使用双引号将对应的转义字符括起来,并且使用函数printf实现输出功能。

2.数据类型输出控制符

在C语言中,数据类型输出控制符包括格式控制符和格式字符。其中,最为常用的格式控制符是“%”。因此,在本小节中,将主要介绍格式字符的功能和使用方法。常用的格式字符如表5.2所示。

表5.2 常用的格式字符

如表5.2所示,用户可以使用表中列出的常用格式字符对输出的数据进行格式化操作。

例如,可以使用表5.2中所列出的常用格式字符,实现相应的数据输出功能。具体代码如下:

#include <stdio.h> //包含标准输入/输出头文件
main() //主函数
{
    int i=12; //定义并初始化整数i
    char s='L'; //定义并初始化字符
    char sz[]="攀枝花学院"; //定义并初始化字符数组
    printf("输出有符号的十进制整数:%d\n",i); //输出有符号的十进制整数
    printf("输出无符号的八进制数:%o\n",i); //输出无符号的八进制数
    printf("输出无符号的十六进制数:%x\n",i); //输出无符号的十六进制数
    printf("输出无符号的十进制数:%u\n",i); //输出无符号的十进制数
    printf("输出单字符:%c\n",s); //输出单字符
    printf("输出字符串:%s\n",sz); //输出一个字符串
    printf("数据输出结束\n",i); //输出提示语
    return 0; //程序正常结束
}

在实例程序中,用户分别定义并初始化三个不同类型的变量,再使用不同的格式控制字符对这些变量输出格式进行相应的控制。程序运行后,将在界面中输出不同的数据,如图5.28所示。

图5.28 程序运行结果

注意 在实例代码中,用户初始化单字符时,需要使用单引号对初始化字符括起来。而在初始化字符串时,必须使用双引号对初始化字符串括起来。