答案中一行代码作用求助
getchar()有什么用if (result)
{
printf("经验证,3 ~ %d 之间所有的整数均符合尼科彻斯定理!\n\n", count);
printf("是否打印所有式子(y/n):");
getchar();
scanf("%c", &answer);
}
吸收回车 因为scanf接收输入时,会把换行符也接收进去
用这个过滤掉 getchar是读入函数的一种。它从标准输入里读取下一个字符。它的作用是从标准输入流中(stdin)读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次调用getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了 。 getchar()就是读取一个字符 本帖最后由 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]