scanf():从键盘读入字符串,以空格,Tab键,回车结束一次赋值,个人觉得的优点是可以一次对多个变量进行赋值,例如:
char a[20];
char b[20];
scanf("%s%s",a,b);
可以一次对a和b赋值。缺点是如果输入有空格,后面的内容会丢失。我们这里的a,b是数组名,代表了数组中首元素的地址,所以前面可以不用加&,如果我们定义的是整型应该像下面这样
int a;
scanf("%d",&a);
或者是数组中的某个元素赋值的时候也一定要加&,像下面这样
char a[20];
scanf("%c",&a[0]);
gets():从键盘读入字符串,以回车结束赋值,优点是可以输入空格,用法如下:
char a[20];
gets(a);
getcher():从键盘读入一个字符,一次只能读一个字符,如果要获取字符串需要配合for循环语句,也可以用在程序输出后,用来停留程序的输出界面,它没有参数,使用方法像下面这样
char ch;
ch = getchar();
getch():从键盘读入一个字符,但是不会回显,一般配合for循环语句用来读取用户设置的密码,可以每获取一次,printf("*");他也没有参数,用法和getchar()一样