printf是C语言的标准输出函数,一般用于向标准输出设备按规定格式输出信息。
函数原型如下:
#include < stdio.h >
int printf(const char *format, ...);
printf函数使用格式为:printf(“<格式化字符串>”,参量表);
printf()是C语言标准库函数,在stdio.h中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。
控制符 |
说明 |
%c |
输出一个字符(char) |
%d |
输出十进制整数(int) |
%hhd |
输出一个字节的整数(char) |
%hd |
输出两个字节的整数(short) |
%ld |
输出长整型(long) |
%md |
m指输出字段宽度,若数据位数小于m,则左边以空格补齐,若大于m,则按实际位数输出。输出的数据按照右边对齐,一共占m位,所有类型都支持指定输出字段宽度。在%后面加上-可实现数据左对齐。 |
%u |
输出无符号整数(unsigned int)。输出无符号时也可以用%d,此时会将无符号转换为有符号输出。 |
%lu |
输出无符号长整数(unsigned long) |
%f |
输出浮点型(float),以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出6位,超过6位的四舍五入。 |
%.mf |
输出实数时小数点后保留 m 位,注意 m 前面有个点。比如: %.2f。 |
%lf |
(long double 使用%lf 输出) |
%o 或%#o |
八进制输出,%#o会自动显示前缀 |
%x 或 %X或 %#x |
十六进制输出 |
%s |
字符串输出 |
%p |
输出地址 |
%% |
输出字符% |
%t |
输出水平制表符 |
scanf()是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。
#include < stdio.h >
int scanf(const char *format, ...);
scanf()是从标准输入(标准输入设备,一般指向键盘)中读内容的通用子函数;可以通过说明的格式读入多个字符,并保存在对应地址的变量中。
在使用scanf函数时,主要注意一下读取字符类型数据问题;scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符和空格字符,在输入第一个 scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了后面的%c。而如果第二个scanf的输入格式不是%c时,由于格式不匹配,这个回车符会被自动忽略, 所以在连续输入两个%c的格式时会出现后面%c获取不到正确。
输入示例:
#include < stdio.h >
int main(int argc,char **argv)
{
int a;
char b;
float c;
scanf("%d %c%f",&a,&b,&c);//%d和%c中间有空格
printf("a=%dn",a);
printf("b=%cn",b);
printf("c=%fn",c);
}
[root@xsw c_2020]# ./a.out
输入整型、字符型、浮点型:12 a 12.34 #输入时也必须在12和a之间加空格
a=12
b=a
c=12.340000
#include < stdio.h >
int main()
{
/*
't' --制表符(相当于TAB键)
__FILE__ 文件名
__FUNCTION__(或__func__) 函数名
__LINE__ 行号
__DATE__ 日期显示
__TIME__ 时间显示
*/
printf("[%s] %s line:%dn",__FILE__,__func__,__LINE__);
printf("time:%s--%sn",__DATE__,__TIME__);
}
在有些时候我们希望通过printf输出的内容以不同的颜色在终端展示,这样在调试过程看起来更加直观。
printf输出颜色时的控制命令:/033[A1;A2;A3m
/033[为固定开头;
m为固定结尾;
A1表示属性;
A2表示字体颜色;
A3表示背景颜色;
属性代码 |
功能 |
0 |
重置所有属性 |
1 |
高亮/加粗 |
2 |
暗淡 |
4 |
下划线 |
5 |
闪烁 |
8 |
反转 |
8 |
隐藏 |
属性代码 |
功能 |
30 |
黑色 |
31 |
红色 |
32 |
绿色 |
33 |
黄色 |
34 |
蓝色 |
35 |
品红 |
36 |
青色 |
37 |
白色 |
属性代码 |
功能 |
40 |
黑色 |
41 |
红色 |
42 |
绿色 |
43 |
黄色 |
44 |
蓝色 |
45 |
品红 |
46 |
青色 |
47 |
白色 |
#include < stdio.h >
int main()
{
printf("�33[1;;41m%s�33[0mn", "Hello World!");//字体加粗,背景为红色
//加下划线,字体颜色为黑色,背景为白色
printf("�33[4;30;47m%s�33[0mn", "Hello World!");
printf("�33[5m%s�33[0mn", "Hello World!");//字体闪烁
printf("�33[;34m%s�33[0mn", "Hello World!");//设置字体为绿色
printf("�33[;;42m%s�33[0mn", "Hello World!");//设置设置背景为绿色
}
全部0条评论
快来发表一下你的评论吧 !