[1]输入输出
getchar
函数
getchar
函数用于从标准输入(通常是键盘)读取一个字符。该函数的声明在标准输入输出头文件 <stdio.h>
中。其具体功能是:
- 从标准输入读取下一个字符。
- 返回读取的字符,作为一个
int
值返回(返回EOF
表示读取结束或发生错误)。#include <stdio.h> int main() { int ch; printf("请输入一个字符:"); ch = getchar(); // 读取一个字符 printf("你输入的字符是:%c\n", ch); return 0; }
putchar
函数putchar
函数用于向标准输出(通常是屏幕)输出一个字符。该函数的声明同样在标准输入输出头文件<stdio.h>
中。其具体功能是: - 将指定的字符写入标准输出。
- 返回写入的字符,作为一个
int
值返回(返回EOF
表示输出失败)。#include <stdio.h> int main() { int ch; printf("请输入一个字符:"); ch = getchar(); // 读取一个字符 printf("你输入的字符是:"); putchar(ch); // 输出读取的字符 putchar('\n'); // 输出换行符 return 0; }
1.2输入输出格式
%d int
%c char
%f float
%lf double
%s 字符串
%p 指针
%o 八进制 %#o
%x 十六进制 %#x、
在%后加#可原格式输出,例如
int x=0x123;
printf("%#x"\n",a);
则输出0x123,若不加#,则省略0x输出123.
printf
函数printf
函数用于向标准输出(通常是屏幕)输出格式化的字符串。其定义在标准输入输出头文件<stdio.h>
中。printf
允许我们输出各种类型的数据,包括整型、浮点型、字符和字符串等,并可以通过格式说明符指定输出格式。scanf
函数scanf
函数用于从标准输入(通常是键盘)读取格式化输入。其定义也在标准输入输出头文件<stdio.h>
中。scanf
允许我们从输入中读取各种类型的数据,并将其存储在指定的变量中。[2]垃圾字符回收
2.1 通过空格回收
可以回收一个或多个空格 tab 回车
2.2 %*c *抑制符
可以回收任意一个字符
2.3 getchar
scanf输入结束时,会在终端输入'\n';
解决'\n'对程序造成的影响:
[3]分支语句
包括
顺序结构、 分支结构、 循环结构主要有if、if-else和switch语句。#include<stdio.h>//if语句 char x=0; int main(int argc, char const *argv[]) { scanf("%c",&x); if(x>='a'&&x<='z') { printf("大写字母为:%c\n",x-32); } else if (x>='A'&&x<='z') { printf("小写字母为:%c\n",x+32); } else { printf("error\n"); } return 0; }
#include<stdio.h>//switch语句 int main(int argc, char const *argv[]) { int s=0; scanf("%d",&s); switch (s/10) { case 10: printf("A\n"); break; case 9: printf("A\n"); break; case 8: printf("B\n"); break; case 7: printf("C\n"); break; default: printf("补考\n"); break; } return 0; }
- case后边的常量值是整型或字符型,不能是浮点型或字符串
- case分支遇到break结束; 后边可以没有break,会从符合条件的分支开始一直运行到整个switch语句执行完才结束。
作业:
1.终端输入一个日期,判断是这一年的第几天
scanf("%d-%d-%d",&y,&m,&d);
闰年2月29天,平年2月28天
#include<stdio.h> int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int y=0,m=0,d=0,days=0,i; int main(int argc, char const *argv[]) { printf("请输入日期,年月日之间加-:"); scanf("%d-%d-%d",&y,&m,&d); if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) { month[1]=29; } for(i=0;i<m-1;i++) { days+=month[i]; } days+=d; printf("这是第%d天\n",days); return 0; }
- 返回写入的字符,作为一个