C语言getch()函数连用问题

#pragma warning(disable:4996)
#include "stdio.h"
#include "stdlib.h"
#include<conio.h>

char mygetch()
{
    char ch = '\n';
    while ((ch = getch()) == '\n');
    return ch;
}

int main() {

    char a = mygetch();

    char b = mygetch();

    printf("'%c' and '%c'", a, b);

    system("pause");
}

调试的时候只输入一个1,结果a被赋值为1;b自动被赋值为空格。(调试的时候输入法是英文)
图片说明

请问怎么才能按下1的时候,赋值1给a,而b没有赋值,然后再按2,b被赋值2,然后显示结果?

如果问题得到解决,请点我回答左上角的采纳和向上的箭头,谢谢

#include "stdio.h"
#include "stdlib.h"

char mygetch()
{
    char ch = '\n';
    while ((ch = getchar()) == '\n');
    return ch;
}

int main(){

char a = mygetch();

char b = mygetch();

printf("'%c' and '%c'", a,b);

system("pause");

}

图片说明

先按1再按2就好了,或者对返回结果判断如果是'\0','\r'再重新获取一次就好了