一、常用的输入输出的函数
1.1 putchar/getchar
1.1.1 putchar
#include
int putchar(int c);
功能:向终端输出一个字符
参数:就是我们要输出的字符
例:
1.1.2 getchat
#include
int getchar(void);
功能:在终端获取一个字符
参数:没有
返回值:就是获取的字符
1.2 puts/gets
1.2.1 puts
#include
int puts(const char *s);
功能:向终端输出一个字符串,自带换行符
参数:要输出的字符串的首地址
1.2.2 gets
#include
char *gets(char *s);
功能:在终端获取一个字符串,要保证用来存放字符串的缓冲区足够大!
参数:保存获取的字符串的缓冲区的首地址
1.3 printf/scanf
1.3.1 printf
格式化输出
#include
int printf(const char *format, ...);
功能:向终端输出一个字符串(可以是自己格式化的)
参数:
format
格式说明:
%c 字符
%d 有符号十进制
%u 无符号十进制
%o 八进制
%x 十六进制
%s 字符串
%f 浮点型
%e 指数形式
%% %
附加格式说明:
l 小写的L,输出long 和long long 及double时会用到
# 输出八进制和十六进制的前导符
.nf n是一个数字,指定输出n位小数
m m是一个数字,表示指定输出的位宽,如果数据比指定的位宽多
以实际数据为准
0 如果指定了位宽 不足的高位,会补0
- 左对齐
+ 输出正数时,会显示+号,负数时会被忽略
... :可变参 个数和类型取决于格式中的占位符
执行结果:
1.3.2 scanf
格式化输入
#include
int scanf(const char *format, ...);
功能:在终端获取数据
参数:
format 格式,注意,输入的内容要和写的格式保持一致
... : 可变参
例1:
例2:
scanf垃圾字符的处理
二、分支控制语句
C语言程序的结构有三种:顺序结构、分支结构(选择结构)、循环结构。
2.1 if..else 语句
2.1.1 格式
2.1.2 if..else语句注意事项
1.如果if..else语句的代码块只有一行,那么{}可以不用写
2.else 之前必须要有if与之对应 否则会报错
3.else 与同一层次的前面与之最近的 if 结合
4.if..else语句的表达式一般情况下是个由关系运算符和逻辑运算符组成的
如果是异常情况,需要注意下面的写法
if(a=b) //这种写法 表达式的结果取决于b的值,b为0 则为假 b为非0 则为真
if(a=10) //这种写法条件恒为真 所以一般常量和变量比较相等时
//建议将常量写在左边 这样写,少写等号的时候 编译器会报错
if(a) //表达式的结果取决于a的值 a为0 则为假 a为非0 则为真
//等价与 if(a!=0)
if(!a) //表达式的结果取决于a的值 a为0 则为真 a为非0 则为假
//等价于 if(a == 0)
5.在同一层次中同时出现两个 if 时
if(){}
if(){}
//这两个if是独立的 相互之间不影响
例: