由于这节内容的讲述会涉及函数,那就简单了解一下函数的三要素:功能、参数、返回值
1. 按字符输入输出
1.1 按字符输出 putchar
int putchar(int c); 功能:向终端输出一个字符 参数:c:要输出字符的ASCII值 返回值:要输出字符的ASCII值。当输出错误的时候,返回 EOF(End of file)文件结束符分// 简单示范一下 int a = 98; putchar('a'); // a putchar(97); // a putchar(10); // 换行 putchar(a); // b a = 10; putchar(a); // 换行 putchar('a' - 32); // A putchar(10); // 换行1.2 按字符输出 getchar
int getchar(void); 功能:从终端输入一个字符 参数:无 返回值:输入字符的ASCII值。如果到达文件末尾或发生读错误,则返回 EOF。练习:用putchar、getchar实现大写字母转换成小写字母
int a; a = getchar(); putchar(a + 32);2. 按格式输入输出
2.1 按格式输出 printf
查看手册用man 3 printf://这里的3是查看第几版本的意思 int printf(const char *format, ...); 功能:按照指定格式向终端输出 参数:format:用双引号括起来的格式控制串和输出表。 返回值:输出字符的个数(不常用)2.1.1 格式
printf("格式控制串", 输出表);
格式控制串:包含两种信息
1. 普通字符:原样输出
2. 格式说明:修饰符%后面加格式字符,用于按照指定格式输出。
输出表:按指定格式输出的数据(可以没有,多个时以' , ',分割)
例:int a = 1, b = 2; printf("a = %d b = %d\n", a, b);格式字符:
%d int
%ld long
%c char
%f float
%lf double
%s 字符串
%e 指数
%#o 八进制
%#x 十六进制
%u 十进制无符号整数
%p 地址
%m.n的含义:
.n:对实数,指定小数点后位数(四舍五入)
对字符串,指定实际输出位数
m:位宽,输出的数据的域宽,数据长度<m左补空格,否则按实际输出。
- :左对齐,默认右对齐
0:输出值时指定左边不适用空位置自动填充0
2.2 按格式输入 scanf
int scanf(const char *format, ...); 功能:按格式从终端输入 参数:同printf 返回值:正确输入数据的个数。当第一个数输入格式不正确时,会直接返回0。2.2.1 格式
scanf("格式控制串", 地址表);
地址表:变量的地址,常用取地址运算符&
格式字符同printf
2.2.2 输入分隔符的指定
一般以空格、TAB或回车作为中间的分隔符。
其他字符作为分隔符的:格式串中两个格式字符之间的字符
例如中间用空格隔开:输入的时候中间也必须输入空格才可以成功输入
int a, b; scanf("%d %d", &a, &b); printf("%d %d\n", a, b);2.3 垃圾字符回收
1. getchar()
只能回收任意一个字符,一般用于循环里面。
char a; scanf("%c", &a); getchar(); //回收垃圾字符 printf("%c\n", a); scanf("%c", &a); printf("%c\n", a);2. 通过空格回收
可以回收一个或多个空格、回车或者TAB
char a; scanf("%c", &a); printf("%c\n", a); scanf(" %c", &a); //前面加个空格,可以吃掉前面残留的分隔符 printf("%c\n", a);