当前位置 : 主页 > 编程语言 > c语言 >

C语言 getchar()的用法

来源:互联网 收集:自由互联 发布时间:2023-09-07
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。 下面是 getchar() 函数的声明: ==int getchar(void)==参数为空 (NULL)返回值 该函数以无符号 char 强制转换为 int 的

C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。

下面是 getchar() 函数的声明:

==int getchar(void)== 参数为空 (NULL) 返回值

该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。


下面的实例演示了 getchar() 函数的用法。


#include <stdio.h>

int main () { char c; printf("请输入字符:"); c = getchar(); printf("输入的字符:"); putchar(c ); return(0); }


让我们编译一下程序,便可以得到以下结果: 请输入字符:a 输入的字符:a


scanf() 可输入不包含空格的字符串,不读取回车,空格和回车表示输入完毕。 getchar() 只能读取用户输入缓存区的一个字符,包括回车。


#include <stdio.h> int main(){ char a[100];

printf("请输入: "); scanf("%s",&a); printf("字符的值为:%s\n",a); printf("请输入: "); printf("%c",getchar());//读取scanf的回车 printf("%c",getchar()); printf("%c",getchar()); return 0; }


屏幕截图 2023-04-24 113536.png

第一个 getchar() 读取了上次 scanf() 的回车,体现在第二个“请输入”后出现了换行,第二、三个 getchar分别 读取 1 2 ,因此 3 没有读取出来。


要避免这种情况,就要在 getchar 前清空缓存区中的回车,可以用 C 语言的基本语法: ==while(getchar()!=EOF&&getchar()!='\n');== 代码完善为: #include <stdio.h> int main(){ char a[100];

printf("请输入: "); scanf("%s",&a); printf("字符的值为:%s",a); while(getchar()!=EOF&&getchar()!='\n'); printf("请输入: "); printf("%c",getchar()); printf("%c",getchar()); printf("%c",getchar()); return 0; }


屏幕截图 2023-04-24 113536.png

上一篇:POJ 1860 Currency Exchange(最短路)
下一篇:没有了
网友评论