getchar怎么用,getchar函数用法
01前言
当我们在编程的时候,避免不了对数据进行输入,那么在对数据输入的时候,有时候只有需要输入单个字符时,程序上需要涉及到getchar()函数,如果使用不当,则会降低我们的编程效率。之前小编对C语言中getchar()函数的使用还存在一定的模糊,今天整理出来,以后要是还对这个知识点感到模糊,就回头看看。
02什么是getchar()函数
声明:以下内容参考或来源于360百科。
定义
getchar()函数的作用是从计算机终端(一般为键盘)输入一个字符。getchar()函数只能接收一个字符,其函数值就是从输入设备得到的字符。
| 中文名称 | 字符输入函数; 字符输入; 无参数 |
| 外文名称 | getchar() |
| 函数原型 | int getchar(void); |
| 功能 | 从stdio流中读字符 |
| 适用语言 | C语言 |
说明
我们在编程中需要对字符做单次输入时,通常使用scanf函数,如果需要对字符做多次输入时,可以会多次调用scanf函数,但是因为输入缓冲区及回车键的原因导致某次字符的输入时候不尽人意。那么此时,就需要用到getchar函数来避免这个问题。因为getchar函数可以取走回车字符,类似于清空输入缓存区,避免回车字符对第二次输出造成影响。
03程序分析
未调用getchar函数前
#include <stdio.h>
#include <strings.h>
#include <string.h>
int main(int argc, const char **argv)
{
char a, b,c;
scanf("%c", &a);
scanf("%c", &b);
printf("a: %c\n", a);
printf("b: %c\n", b);
return 0;
}
/*
程序说明:
该函数需要分别对字符变量a、b赋值
需要对scanf函数进行两次调用
但是此时没有调用getchar函数
-------------------------------
程序输出:
1
a: 1
b:
-------------------------------
分析:
因为在第一次调用scanf函数时
输入1并且按了回车键
此时系统已经默默调用了scanf函数,
输入2并且按了回车键
此时输入函数早已经结束,
输出函数将结果进行输出
由此我们可以看到
'\n'字符赋值给了b,
记录于:2020/6/28
*/假如你对以上程序有疑问,我想下面的程序能解你疑惑。
#include <stdio.h>
#include <strings.h>
#include <string.h>
int main(int argc, const char **argv)
{
char a, b,c;
scanf("%c", &a);
scanf("%c", &b);
scanf("%c", &c);
printf("a: %c\n", a);
printf("b: %c\n", b);
printf("c: %c\n", c);
return 0;
}
/*
程序说明:
该函数需要分别对字符变量a、b、c赋值
需要对scanf函数进行三次调用
但是此时依旧没有调用getchar函数
-------------------------------
程序输出:
1
2
a: 1
b:
c: 2
-------------------------------
分析:
因为在第一次调用scanf函数时
输入1并且按了回车键
第二次调用scanf函数时,
输入2并且按了回车键
此时输入函数已经结束,因为第三次调用scanf已经完成
输出函数将结果进行输出
由此我们更加清楚的看到
'\n'字符赋值给了b,
相信这个程序能解你上一个程序的疑惑
记录于:2020/6/28
*/调用getchar函数后
#include <stdio.h>
#include <strings.h>
#include <string.h>
int main(int argc, const char **argv)
{
char a, b,c;
scanf("%c", &a);
getchar();
scanf("%c", &b);
printf("a: %c\n", a);
printf("b: %c\n", b);
return 0;
}
/*
程序说明:
该函数需要分别对字符变量a、b赋值
需要对scanf函数进行两次调用
期间调用了getchar函数
用以取走'\n'字符,避免其对输入的影响
-------------------------------
程序输出:
1
2
a: 1
b: 2
-------------------------------
分析:
因为在第一次调用scanf函数时
输入1并且按了回车键
此时1已经赋值给了a
系统在你按了回车键的同时
调用了getchar函数,
取走了'\n'字数
此时输入缓冲区里面空无一物
当你输入2并且按了回车键
此时因为getchar消除了'\n'字符的影响
因此2赋值给了b,
而第二次回车键使输入函数结束
输出函数将结果进行输出
由此我们可以看到
getchar函数的效果
记录于:2020/6/28
*/程序写到这里,可能有一些爱搞事的小伙伴,一次输入不是一个字符,而是多个字符,那么你的程序结果出现类似这种情况,但是以下这种情况,字符之间的赋值又是怎样的呢?

04结尾
本次关于getchar函数的相关介绍及例程,就先整理到这里。
本文地址:IT问答频道 https://www.hkm168.com/itwenda/938789.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!



相关阅读







