C 库函数 - getchar()
描述
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。
声明
下面是 getchar() 函数的声明。
int getchar(void)
参数
- NA
返回值
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
实例
下面的实例演示了 getchar() 函数的用法。
实例
#include <stdio.h>
int main ()
{
char c;
printf("请输入字符:");
c = getchar();
printf("输入的字符:");
putchar(c);
return(0);
}
int main ()
{
char c;
printf("请输入字符:");
c = getchar();
printf("输入的字符:");
putchar(c);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
请输入字符:a 输入的字符:a
李奶奶
279***1010@qq.com
scanf() 可输入不包含空格的字符串,不读取回车,空格和回车表示输入完毕。
getchar() 只能读取用户输入缓存区的一个字符,包括回车。
例:
编译运行:
在这里,第一个 getchar() 读取了上次 scanf() 的回车,体现在第二个“请输入”后出现了换行,第二、三个 getchar分别 读取 1 和 2,因此 3 没有读取出来。
要避免这种情况,就要在 getchar 前清空缓存区中的回车,可以用 C 语言的基本语法:
也可以用 fflush(stdin) 清空缓存区。
代码完善为:
输出:
李奶奶
279***1010@qq.com