//a)getchar:在键盘上输入一个ASCII码的文本,返回值得到的是一个数值,
//c=getchar等价于scanf("%c",&c);在第一次执行时时阻塞,并等待输入。
//如果下一次输入缓冲中有剩余还未提取的输入数据,将不阻塞直接提取那些剩余的数据;
//b)fflush(stdin)可以清除掉前面输入缓冲中剩余的数据,因此经常在getchar函数之前使用这个函数;
//fflush(stdin)对vs2013以前的版本管用,对vs2015不起作用,替代的方法是while ((n1 = getchar()) != '\n' && n1!= EOF);。
//c)gets;gets(s)等价于scanf("%s",&s);gets在vs2015中没有这个函数。
//fgets的参数是 变量,变量的大小+1,文件流 stdin是表示从屏幕输入。
//d)scanf是一个综合性格式化输入的函数,可以通过控制字符串同时输入多个不同类型的变量或常量的数值。
//e)scanf_s是避免输入字符串或字符越界的安全版本的输入函数,主要在%s和%c的控制符上要对缓冲区的大小代入。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
int main(int argc, char** argv)
{
char s1[5];
//wchar_t wc, ws[5];
scanf_s("%s", s1, 6);//这里的6也不能控制输入多于5的字符输入,多于5个输入得到的结果是空。
printf("%s",s1);
char c1[5];
fgets(c1, 6,stdin);
printf("%s",c1);
//int n = getchar();//输入a得到的是97
char n1;
scanf("%c", &n1);
printf("%d\n",n1);//97
printf("%c\n", n1);//a
//fflush(stdin);
//scanf("%*[^\n]");
while ((n1 = getchar()) != '\n' && n1!= EOF);//可以清除缓冲区中的数据\n
//char n1;
scanf("%c", &n1);//输入a得到的是
printf("%d\n", n1);//97
printf("%c\n", n1);//a
return 0;
}