请问这里getchar是怎么用的
#include<stdio.h>void de(char str[],char c);
int main()
{
int repeat;
int j,i;
char str,a,c;
scanf("%d",&repeat);
for(i=0;i<repeat;i++)
{
getchar();//-----------------------------------就是它!
a=getchar();
for(j=0;a!='\n';j++)
{
str=a;
a=getchar();
}
c=getchar();
str='\0';
de(str,c);
getchar();
}
}
void de(char str[],char c)
{
int i,j=0;
char str1;
printf("result: ");
for(i=0;str!='\0';i++)
{
if(str!=c)
printf("%c",str);
}
} 知道了,是吸收上面scanf函数最后的回车 本帖最后由 jackz007 于 2019-11-15 22:27 编辑
scanf("%d",&repeat);
. . . . . .
getchar();
a=getchar();
每次使用 scanf() 从键盘读取输入以后,键盘缓冲区会有一个回车符 '\n' 滞留,如果这个时候直接使用 getchar() 读取输入,读取到的将是这个滞留的回车符 '\n',而不是我们预期的键盘输入,所以,就需要空置一个 getchar(),把键盘缓冲区当前滞留的回车符读取出来,直接丢弃,然后,再用 getchar() 读取到的,就会是我们所预期的键盘输入。
页:
[1]