目录
1、“打印”就是“输出”的意思
2、使用 GCC 编译程序:gcc 源代码 -o 可执行文件。
3、printf 是格式化输出函数
a、函数概要
b、函数原型
c、参数分析
d、返回值
e、演示
4. 转义字符
5. 反斜杠的奥义
6、课后习题(编程题)
1、“打印”就是“输出”的意思
下面就是我们上手C语言的第一个程序。(也大概是我们学习任何语言上手的第一个程序)
#include <stdio.h>
int main()
{
printf("I love FishC.com!\n");
return 0;
}
2、使用 GCC 编译程序:gcc 源代码 -o 可执行文件。
3、printf 是格式化输出函数
确实有了函数的加入我们方便了许多!!!
a、函数概要
printf 函数用于打印格式化字符串到标准输出流。
b、函数原型
#include <stdio.h>
...
int printf ( const char * format, ... );
c、参数分析
format 参数
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
格式化占位符(以 % 开头)用于指明输出的参数值如何格式化。
格式化占位符的语法如下:
%[flags][width][.precision][length]specifier
每一个格式化占位符均以 % 开始,以转换字符结束。
specifier(转换字符,必选)的内容及含义如下:
转换字符 | 参数类型;转换结果 |
c | char;字符 |
d | int;有符号十进制整数 |
i | 同上 |
e | double;以指数形式输出单、双精度浮点数(小写 e) |
E | 同上(大写 E) |
f | double;以小数形式输出单、双精度浮点数 |
g | double;以 %f 或 %e 中较短的输出宽度输出单、双精度浮点数(指数显示小写 e) |
G | 同上(指数显示大写 E) |
o | unsigned int;无符号八进制(无前导 0) |
s | char *;字符串 |
u | int;无符号十进制 |
x | unsigned int;无符号十六进制(无前导 0x) |
X | 同上(无前导 0X) |
p | void *;指针值 |
n | int *;存放已写字符的个数 |
% | 不进行参数转换;% 自身 |
注:如果 % 后边的字符不是转换字符,则其行为没有定义。
flags(标志,可选)的内容即含义如下:
标志 | 含义 |
- | 指定被转换的参数在其字段内左对齐(默认是右对齐) |
+ | 指定在输出的数前面加上正负号 |
空格 | 如果第一个字符不是正负号,则在其前面加上一个空格 |
0 | 对于数值转换,当输出长度小于字段宽度时,添加前导 0 进行填充 |
# | 指定另一种输出形式: 1. 如果转换字符为 o,则第一个数字为 0 2. 如果转换字符为 x 或 X,则指定在输出的非 0 值前加 0x 或 0X 3. 对于转换字符为 e、E、f、g 或 G 的情况,指定输出总是包含一个小数点。另外,对于转换字符为 g 或 G,还指定输出值尾部无意义的 0 将被保留 |
注:flags 可同时出现多个,且无顺序要求。
width(宽度,可选)是一个数值,用于指定最小字段的宽度
转换后的参数输出宽度至少要达到这个数值。如果参数的字符数小于该数值,则在参数左边(如果 flags 设置为 -,要求左对齐的话则在右边)填充一些字符。填充字符通常为空格,但是如果 flags 设置为 0,则填充字符为数字 0。
.precision(.精度,可选),通过点号(.)分隔字段的宽度和精度
- 对于字符串,它指定打印的字符的最大个数
- 对于整数,它指定打印的数字位数(必要时可加填充位 0 以达到宽度要求)
- 对于转换字符为 e、E 或 f,它指定打印的小数点后的数字位数
- 对于转换字符为 g 或 G,它指定打印的有效数字位数
length(长度修饰符,可选)的值可以是 h、hh、l、ll 或 L
- hh 表示将相应的参数按 signed char 或 unsigned char 类型输出
- h 表示将相应的参数按 short 或 unsigned short 类型输出
- l 表示将相应的参数按 long 或 unsigned long 类型输出
- ll 表示将相应的参数按 long long 或 unsigned long long 类型输出
- L 表示将相应的参数按 long double 类型输出
d、返回值
如果函数调用成功,返回值是实际打印的字符数(不包含表示字符串结束的 '\0');
如果函数调用失败,返回值是一个负数。
e、演示
#include <stdio.h>
int main()
{
int a = 325;
char b = 'Y';
float c = 3.14;
double d = 3.141592653;
printf("小王出生在2000年的的%d\n", a);
printf("I love %cou!\n", b);
printf("圆周率是:%.2f\n", c);
printf("精确到小数点后9位的圆周率是:%11.9f\n", d);
return 0;
}
结果:
4. 转义字符
在 C 语言中,用双引号括起来的内容我们称之为字符串,也就是我们平时所说的文本。
转义字符一般是表示特殊含义的非可见字符,以反斜杠开头:
5. 反斜杠的奥义
在字符串中反斜杠 + 字符是转义字符,表示特殊含义。
但反斜杠如果后边不带任何字符(直接换行),表示我们希望 C 语言将该行以及下一行看做是一
个整体。
比如:
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
可以写成:
#in\
clude \
<stdio.h>
int ma\
in()
{
print\
f("Hello World!\n");
return \
0;
}
6、课后习题(编程题)
要求打印出这一架飞机!!!
#include <stdio.h>
int main()
{
printf("\n\
@\n\
/ \\\n\
* *\n\
* *\n\
* *\n\
* * * * * * * *\n\
* * * * * * * * * *\n\
* * * * * * * * * * * *\n\
* *\n\
* *\n\
* * * *\n\
* * * * * *\n");
return 0;
}
结果: