程序在计算机的内存中运行,得出结果以后总是需要输出,这样我们才能查看程序的运行状况。C语言用于输出的主要方法是使用格式输出函数 printf( ) 和字符串输出函数 puts( )。
printf( ) 函数的作用就是把字符、数字和单词发送到电脑屏幕上(屏幕打印)。
printf( )的一般格式如下:
printf("格式控制字符串",输出表列); //输出表列各项用符号,分隔开
puts( )函数是把字符串输出到电脑屏幕上并换行。
puts("Hello World!"); //屏幕打印字符串消息并换行
只要把需要在屏幕上显示的字符串消息放在双引号中,电脑执行 printf( ) 和 puts( ) 语句时,就会在屏幕上原样打印出该字符串消息(见图 1 )。
因为数字、字符在计算机内部都是以二进制数来存储和处理的,所以需要屏幕打印数字和字符时,必须准确地告诉 C 程序需要打印的内容是什么数据类型(格式)。C语言使用转化字符来表明数据的格式。表 1 列举了 C语言中常用的 4 种转化字符。
转化字符 | 描述 | 输出示例 | 说明 |
---|---|---|---|
%d | 整数 | printf("%d",16); | 输出整数 16 |
%f | 浮点数 | printf("%f",3.14); | 输出小数 3.140000 |
%c | 字符 | printf("%c",'x'); | 输出字符 'x' |
%s | 字符串 | printf("%s","China"); | 输出字符串 "China" |
如果仅仅输出一个字符串,则可以省略转化字符 %s,比如:
printf("%s","Hello World!"); 可简写为: printf("Hello World!");
但如果输出与其他数据组合的字符串时,必须用转化字符 %s(见图 3),比如:
printf("%s 一斤 %f 元,%s 一斤 %d 元","苹果",2.5,"西瓜",2);
转化字符 %f 默认输出一个 6 位小数位的浮点数,如果不足 6 位,也会在后面补 0,如果超过 6 位则会四舍五入转化为 6 位小数位再输出。使用 %.nf 的形式可以用其中的 n 来指定输出的小数位数,比如 %.2f 表示输出 2 位小数位的浮点数(见图 4)。
如果要在屏幕上输出字符“%”,可以使用下面的方式:
printf("%%"); //双引号中的两个%在屏幕上只显示一个 printf("%%d %%c %%f %%s"); //屏幕显示:%d %c %f %s
如果要在屏幕上输出反斜杠字符\或引号" ",则必须使用 C语言的转义序列。转义序列就是在要显示的特殊字符前面加一个反斜杠\,以便显示该特殊字符,或者让电脑执行某些特殊动作(比如换行、响铃等)(见图 5)。
表 4 列出了 C语言常用的转义序列。
转义序列 | 描述 | 输出示例 |
---|---|---|
\n | 换行 | printf("第一行 \n 第二行"); |
\a | 警报(电脑响铃) | printf("电脑响铃一次 \a"); |
\t | 制表符 | printf("\t 首行缩进一个制表符位"); |
\\ | 反斜杠 | printf("显示两个反斜杠 \\\\"); |
\" | 双引号(英文半角字符) | printf("显示双引号 \" 中国 \"!"); |
用 printf( ) 输出转义字符都会产生表中所描述的效果。例如,当发送\a到屏幕时,电脑的铃声会响起,而不是真把字符\和a显示出来。屏幕显示多行文本时,如果想要移到下一行,就必须在换行的位置键入\n。
在使用 printf( ) 的 C 程序中,必须在程序的预处理指令部分添加指令包含 stdio.h 头文件:#include<stdio.h>
printf( )函数实现屏幕打印的两个实例如代码清单 3 和代码清单 4 所示。
代码清单 3:使用 printf( ) 打印字符图形
#include <stdio.h>
#include <stdlib.h>
int main( )
{
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" *******\n");
printf(" *****\n");
printf(" ***\n");
printf(" *\n ");
system("pause");
return 0;
}
运行结果:
* *** ***** ******* ***** *** *
代码清单 4:使用 printf( ) 打印表格
#include <stdio.h>
#include <stdlib.h>
int main( )
{
printf("┌———┬———┐\n");
printf("│ 中国 │ 美国 │\n");
printf("├———┼———┤\n");
printf("│CHINA │ USA │\n");
printf("├———┼———┤\n");
printf("│ 95%% │ 98%% │\n");
printf("└———┴———┘\n\n ");
system("pause");
return 0;
}
运行结果:
┌———┬———┐ │ 中国 │ 美国 │ ├———┼———┤ │CHINA │ USA │ ├———┼———┤ │ 95% │ 98% │ └———┴———┘
printf( ) 函数实现 C语言关机程序提示界面实例如代码清单 5 所示。
代码清单 5:使用 printf( ) 屏幕打印提示信息
#include <stdio.h>
#include <stdlib.h>
int main( )
{
printf("\n\n\n");
printf(" ╔══════ C语言关机程序══════╗\n");
printf(" ║ ║\n");
printf(" ║ ※ 1.实现10分钟内的定时关闭计算机 ║\n");
printf(" ║ ※ 2.立即关闭计算机 ║\n");
printf(" ║ ※ 3.注销计算机 ║\n");
printf(" ║ ※ 0.退出系统 ║\n");
printf(" ║ ║\n");
printf(" ╚═══════════════════╝\n\n");
printf(" 请选择输入(0-3),然后回车:");
int ss;
scanf("%d",&ss);
printf("\n\n\n");
system("pause");
return 0;
}
运行结果:
╔══════ C语言关机程序══════╗ ║ ║ ║ ※ 1.实现10分钟内的定时关闭计算机 ║ ║ ※ 2.立即关闭计算机 ║ ║ ※ 3.注销计算机 ║ ║ ※ 0.退出系统 ║ ║ ║ ╚═══════════════════╝ 请选择输入(0-3),然后回车:2
printf( ) 函数通过变量名将变量的值显示在屏幕上的实例如代码清单 6 所示。
代码清单 6:使用 printf( ) 屏幕打印变量值
#include <stdio.h>
#include <stdlib.h>
int main( )
{
printf("计算学生的总分和平均分:\n\n");
float maths,english,chinese;
float average,sum;
char stuName[ ]="王小石";
maths = 94.5;
english = 96;
chinese = 88;
sum = maths + english + chinese;
printf("%s同学的总分:%.1f\n",stuName,sum);
printf("%s同学的平均分:%.2f\n",stuName,sum/3);
system("pause");
return 0;
}
运行结果:
计算学生的总分和平均分:
王小石同学的总分:278.5
王小石同学的平均分:92.83
图 6 形象地展示了 printf( ) 函数将变量值显示到屏幕上的方式。
想继续深入学习 printf() 的读者请猛击《printf()输出格式大全》。