世界新资讯:C语言基础知识(2)--标准输入输出
1.标准输出printf
printf是C语言的标准输出函数,一般用于向标准输出设备按规定格式输出信息。
函数原型如下:
(资料图片)
#include 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 | 输出水平制表符 |
2.标准输入printf
scanf()是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。
#include int scanf(const char *format, ...);
scanf()是从标准输入(标准输入设备,一般指向键盘)中读内容的通用子函数;可以通过说明的格式读入多个字符,并保存在对应地址的变量中。
在使用scanf函数时,主要注意一下读取字符类型数据问题;scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符和空格字符,在输入第一个 scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了后面的%c。而如果第二个scanf的输入格式不是%c时,由于格式不匹配,这个回车符会被自动忽略, 所以在连续输入两个%c的格式时会出现后面%c获取不到正确。
输入示例:
#includeintmain(intargc,char**argv){inta;charb;floatc;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=12b=ac=12.340000
3.输出函数名和行号
#include int main(){/*"t" --制表符(相当于TAB键)__FILE__ 文件名__FUNCTION__(或__func__) 函数名__LINE__ 行号__DATE__ 日期显示__TIME__ 时间显示*/printf("[%s] %s line:%dn",__FILE__,__func__,__LINE__);printf("time:%s--%sn",__DATE__,__TIME__);}
4.printf输出字体颜色
在有些时候我们希望通过printf输出的内容以不同的颜色在终端展示,这样在调试过程看起来更加直观。
printf输出颜色时的控制命令:/033[A1;A2;A3m
/033[为固定开头; m为固定结尾; A1表示属性; A2表示字体颜色; A3表示背景颜色;
A1参数属性代码 | 功能 |
0 | 重置所有属性 |
1 | 高亮/加粗 |
2 | 暗淡 |
4 | 下划线 |
5 | 闪烁 |
8 | 反转 |
8 | 隐藏 |
属性代码 | 功能 |
30 | 黑色 |
31 | 红色 |
32 | 绿色 |
33 | 黄色 |
34 | 蓝色 |
35 | 品红 |
36 | 青色 |
37 | 白色 |
属性代码 | 功能 |
40 | 黑色 |
41 | 红色 |
42 | 绿色 |
43 | 黄色 |
44 | 蓝色 |
45 | 品红 |
46 | 青色 |
47 | 白色 |
#include 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!");//设置设置背景为绿色}
审核编辑:汤梓红 标签: