当前位置:网站首页 > 技术博客 > 正文

getchar在c语言中怎么用



scanf() 可输入不包含空格的字符串,不读取回车,空格和回车表示输入完毕。

getchar() 只能读取用户输入缓存区的一个字符,包括回车。

例:

#include <stdio.h> int main(){ char a[100]; printf("请输入: "); scanf("%s",&a); printf("字符的值为: "); printf("请输入: "); printf("%c",getchar()); printf("%c",getchar()); printf("%c",getchar()); return 0; }

编译运行:

请输入:123 字符的值为:123 请输入: 12 12

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

要避免这种情况,就要在 getchar 前清空缓存区中的回车,可以用 C 语言的基本语法:

char c_tmp; while ((c_tmp!=' ')&&c_tmp!='EOF');

也可以用 fflush(stdin) 清空缓存区。

代码完善为:

#include <stdio.h> int main(){ char a[100]; printf("请输入: "); scanf("%s",&a); printf("字符的值为: "); //fflush(stdin); char c_tmp; while ((c_tmp!=' ')&&c_tmp!='EOF'); printf("请输入: "); printf("%c",getchar()); printf("%c",getchar()); printf("%c",getchar()); return 0; }

输出:

请输入:123 字符的值为:123 请输入:123 123

版权声明


相关文章:

  • 软件测试的面试题及答案2025-08-14 22:30:05
  • fstream file()2025-08-14 22:30:05
  • js文件用什么软件打开2025-08-14 22:30:05
  • java string 数组2025-08-14 22:30:05
  • fpga 异步fifo2025-08-14 22:30:05
  • 大端和小端字节顺序的区别2025-08-14 22:30:05
  • jsf 菜鸟教程2025-08-14 22:30:05
  • kvm虚拟化技术:实战与原理解析2025-08-14 22:30:05
  • android zxing详解2025-08-14 22:30:05
  • python jinja2模板2025-08-14 22:30:05