八块腹肌的胖子 发表于 2020-4-17 11:38:14

答案中一行代码作用求助

getchar()有什么用
      
      if (result)
      {
                printf("经验证,3 ~ %d 之间所有的整数均符合尼科彻斯定理!\n\n", count);
                printf("是否打印所有式子(y/n):");
                getchar();
                scanf("%c", &answer);
      }

Hello. 发表于 2020-4-17 11:41:50

吸收回车

qiuyouzhi 发表于 2020-4-17 11:42:09

因为scanf接收输入时,会把换行符也接收进去
用这个过滤掉

ningyuefei 发表于 2020-4-17 11:47:19

getchar是读入函数的一种。它从标准输入里读取下一个字符。它的作用是从标准输入流中(stdin)读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次调用getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了   。

悠悠2264 发表于 2020-4-17 11:54:19

getchar()就是读取一个字符

sunrise085 发表于 2020-4-17 12:06:13

本帖最后由 sunrise085 于 2020-4-17 12:11 编辑

getchar()是读取一个字符,这里的作用是清除缓冲区的一个字符。
一般用在两次scanf之间,若第二次scanf是读取一个%c,一般之前会写getchar(),否则scanf读到的%c将会是上一次scanf遗留的空白符(空格、tab、回车)

给你个例子体会一下
#include<stdio.h>
int main()
{
    int a;
    char ch;
    scanf("%d",&a);
    //getchar();
    scanf("%c", &ch);
    printf("a=%d,ch=%c\n",a,ch);
    return 0;
}
若输入:12(回车)a
若没有getchar(),则ch读到的是回车字符
若加上getchar(),才能是ch读到字符a
页: [1]
查看完整版本: 答案中一行代码作用求助