输入输出
函数三要素:功能 参数 返回值
1.按字符输入输出
1.1putchar()
int putchar(int c);
功能:向终端输出一个字符
参数:c:要输出字符的ASCII值
返回值:要输出字符的ASCII值。当输出错误的时候,返回 EOF(End of file)文件结束符分
1.2getchar
按字符输入
int getchar(void);
功能:从终端输入一个字符
参数:无
返回值:输入字符的ASCII值。如果到达文件末尾或发生读错误,则返回 EOF。
2.按格式输出
2.1 printf
查看手册用man 3 printf:
int printf(const char *format, ...);
功能:按照指定格式向终端输出
参数:format:用双引号括起来的格式控制串和输出表。
返回值:输出字符的个数(不常用)
格式:printf(“格式控制串”, 输出表);
格式控制串:包含两种信息
1.普通字符:原样输出
2.格式说明:修饰符%加格式字符
输出表:要输出的数据(可以没有,多个时可用逗号隔开)
格式字符:
%d int
%ld long
%f float
%lf double
%c char
%s 字符串
%x 十六进制
%o 八进制
%u 十进制无符号整数
%p 地址
%e 指数
%m.n含义:.n: 对实数指定小数点后的位数(四舍五入)对字符串,指定实际输出的位数
m: 位宽,输出数据的域宽,数据长度<m, 左边补空格,否则按实际输出。
-: 左对齐,默认右对齐
0:输入数值时时指定左边不用的空位置自动补0
2.2scanf
int scanf(const char *format, ...);
功能:按格式从终端输入
参数:同printf
返回值:正确输入数据的个数。当第一个数输入格式不正确时,会直接返回0。
格式:scanf(“格式控制串”,地址表);
地址表要加&
垃圾字符问题
输入两个char类型会有垃圾字符
解决方法:1.通过空格回收:在%前输入空格
2.在%前打一个%*c
3.getchar()