莫wj 发表于 2021-11-26 07:40:29

C语言

为什么一下子同时出来“请输入第一个字符”“请输入第二个字符”且无法输入第一个字符?

jhq999 发表于 2021-11-26 07:52:53

每个scanf()接收完成后在后面加一个fflush(stdin);

basketmn 发表于 2021-11-26 08:03:03

#include<stdio.h>
int main(void)
{
        char xo;
        int n,score,counter=0;
        scanf("%d",&n);
        fflush(stdin);
        for(int i=0;i<n;i++){
                scanf("%c",&xo);
                //printf("\n");
        }
        printf("%s\n",xo);
        return 0;
}

莫wj 发表于 2021-11-26 16:34:59

jhq999 发表于 2021-11-26 07:52
每个scanf()接收完成后在后面加一个fflush(stdin);

谢谢!但能解释一下我原来那个错在哪里吗?万分感谢!

莫wj 发表于 2021-11-26 16:36:07

basketmn 发表于 2021-11-26 08:03


感谢感谢

jhq999 发表于 2021-11-26 19:15:21

莫wj 发表于 2021-11-26 16:36
感谢感谢

因为'\n'也是字符,当你按下回车结束输入,换行符'\n'会进入缓存,当你再次输入时scanf()接收字符时会先接收前面进入缓存的'\n',所以如果你不要后面进入缓存的东西,你可以在输入结束后用fflush(stdin)清除缓存
页: [1]
查看完整版本: C语言