C语言中有多个函数可以丛键盘获得用户输入,常见的输入函数有:
scanf() 可输入多种类型的数据
getchar() 输入单个字符
getche() 输入单个字符
getch() 输入单个字符
gets() 获取一行数据,并作为字符串处理
1.scanf()
scanf()是最灵活,最复杂,最常用的输入函数,scanf的功能用一句话概括就是“通过键盘给程序中的变量赋值”。具体用法为 scanf("输入控制符",输入参数);
下面给大家举个例子:
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a); //&a表示变量 a 的地址,&是取地址运算符
printf("%d", a);
return 0;
}
当然,如果要一次给多个变量赋值:
#include<stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a,&b);
printf("%d %d", a, b);
return 0;
}
注意:在scanf的“输入参数”中,变量前面的取地址符&不要忘记。
2.getchar()
getchar()可以用来输入单个字符,它就是scanf("%c",&a)的代替品,除了更简洁,没有更多优势了;也可以说getchar()是scanf()的一个简化版本。
下面给大家举个getchar()的使用例子:
#include<stdio.h>
int main()
{
char c;
c = getchar();
printf("%c", c);
return 0;
}
3.getche()
getche()是一个比叫有意思的 输入函数,他没有缓冲区,输入一个字符后会立即读取,不用等待用户按下回车键,这是它和scanf(),getchar()的最大区别。
请看下面关于getche()使用的代码:
#include<stdio.h>
#include<conio.h>
int main()
{
char c;
c = getche();
printf("\n%c", c);
return 0;
}
输入实例:
当我们从键盘输入一个字符‘w’,getche()立即读取完毕,接着执行printf()将字符输出,所以没有按回车就执行结束了。
2.getch
getch()也没有缓冲区,输入一个字符会立即读取,不用按下回车键,这一点和getche()相同。但getch()的特别之处是getch()没有回显,看不到输入的字符。(回显就是在控制台显示用户输入的字符;没有回显,就不会显示用户输入的字符)
getch()使用举例:
#include<stdio.h>
#include<conio.h>
int main()
{
char c;
c = getch();
printf("\n%c", c);
return 0;
}
输入输出示例:
当我们从键盘输入一个字符‘w’,getch()立即读取完毕,接着执行printf()将字符输出,但由于getch()没有回显,看不到输入的字符 'w' 。
5.gets()
gets()可以用来输入字符串,当然前面所讲到的scanf()也可以用来输入字符串对应的格式控制符为%s,但使用scanf()输入的字符串中不能含有空格,遇到空格就认为当前字符串结束了,所以无法读取有空格的字符串。
gets()认为空格也是字符串的一部分,只有遇到回车键时才会认为字符串输入结束,所以不管有多少个空格,只要不按下回车键,对gets()来说都是一个完整的字符串。
下面是gets()的使用方法:
#include<stdio.h>
int main()
{
char c[10];
char d[10];
gets(c);
gets(d);
printf("%s\n", c);
printf("%s\n", d);
return 0;
}
输入输出示例
文章详细介绍了C语言中几个常用的键盘输入函数,包括scanf()用于输入多种类型数据,getchar()和getche()用于输入单个字符,getch()无回显输入,以及gets()用于获取字符串,强调了它们的特点和使用场景。
976

被折叠的 条评论
为什么被折叠?



