说到转义序列和转换字符,就不得不说说用于在屏幕上输出内容的函数,printf()函数了。
printf()一般格式:printf( 控制字符串 [ , 数据 ]);
- 注意符号都要用英文符号,控制字符串是不能少的,方括号中的内容则是可有可没有的。
- 控制字符串是下面代码中整个绿色的部分
#include<stdio.h>
main()
{
printf(" I am a student.");
printf(" I have a dream.");
}
输出的内容为:(主编用的编译器是Dev-C++)
I am a student.I have a dream.
可以看到,这两条程序的输出是在一排的,也就是说,printf()函数被执行时,不自带换行。(在python中,用于输出的函数print(),是自带换行的)
如果想将输出的内容排成两行,要怎么办呢?这时就不得不使用转义序列了。
转义序列常用于printf()函数的控制字符串中,如下是常见的转义序列。
代码 | 描述 |
\n | 换行。放于双引号里面内容的末尾或下一行双引号内容的开头 |
\a | 警告。(计算机铃声) |
\b | 退格。擦去前面的一个单位的内容 |
\t | 制表。即一个Tab键 |
\\ | 一个反斜杠。 |
\' | 一个单引号。 |
\" | 一个双引号。 |
能换行的代码如下:
#include<stdio.h>
main()
{
printf(" I am a student.\n");
printf(" I have a dream.");
}
输出内容为:
I am a student.
I have a dream.
- \n 也可位于第二排双引号里面内容的开头
- 注意:printf()函数的控制字符串使用的是双引号 (跟python是不同的)
下面来一个程序,感受一下上面表格中的几种转义序列。
#include<stdio.h>
main()
{
printf("student\tclass\tschool report");
printf("\nMy computer\'z\bs sounds like this:\a!");
printf("\nThere are signs:\" or \\");
}
主编电脑的输出图片如下:
- 使用\b转义序列时擦去了前面的z,使输出的内容中没有z
- 使用\a转义序列时,程序输出的同时会有铃声,这个声音很好听,快去电脑里试试吧
通过上面的学习,是不是对C语言的转义序列有了了解呢?接下来我们学习转换字符
转换字符也常用于printf()函数的控制字符串中,以下是常见的转换字符。
转换字符 | 描述 |
%d | 转换整数 |
%f | 转换浮点数 |
%c | 转换字符 |
%s | 转换字符串 |
一般使用方法:如果想在输出的内容中打印值,则在控制字符串中插入转换字符,待打印的值列于控制字符串右边。这部分内容即为上面printf()格式中的 [,数据] 部分。接下来让我们再通过实例代码来感受一下转换字符的功能吧。
#include<stdio.h>
main()
{
printf(" %d + %d = %d",2,3,5);
printf("\n %c or %s ",'x',"This is a string");
printf("\n %.1f %.2f %.3f %f",0.36,0.36,0.36,0.36);
printf("\n This is a sign %c.",'%');
}
主编电脑的输出图片如下:
- 在使用%c时,控制字符串右边的待打印的单字符要使用单引号,注意:如果要打印%,也需要使用转换字符%c
- 在使用%s时,控制字符串右边的待打印的字符串要使用双引号
- %f 用于转换浮点数(即有小数点的数,而整数是没有小数点的数)如果要控制输出位数,则在%号后面加 .数字 ,此时会四舍五入,而默认的位数是6位
转义序列和转换字符均用于printf()函数的控制字符串中,C语言不会自动转换数据的格式,所以要使用转换字符。如果要输出浮点数,注意要控制位数,默认的是6位。
#以上就是这讲的所有内容,如果大家有不清楚的地方,欢迎来私信我,我们一起研究。寒假不忙,别担心哦。编程其实很有趣,如果遇到困难,可以跟我聊天。Q1494684866