关于C语言用scanf同时输入字符串和字符

本人新手 用两个scanf输入字符串和字符
当scanf("%s",a)在scanf("%c",&b)前时 输入字符串后就会跳过输入字符 这是为什么

主要原因是你输入字符串后,必须按回车键才能让程序接收输入字符串,但回车键本身也是个字符,你接着用scanf("%c"输入字符的话,正好回车键当字符被接收了,所以不需要再输入字符了。为了正确输入字符,在scanf("%c"前加一句getchar();就可以了,让它接收回车键即可

字符数组输入他会默认读一行数据,你回车后用一个getchar接受回车符再输入下一个数据就好了

贴一下具体代码?
理论上如果中间有回车的话是可以正常接受字符的
在两个scanf之间插入一个getchar,用于消除换行符即可正常读入
示例代码如下:

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    char a[20], b;
    scanf("%s", a);
    getchar();
    scanf("%c", &b);
    printf("%s\n%c", a, b);
}

img