getchar()で意図しないものが入力される現象

getchar()関数ではキーボードから受け取ったものを何でも受け取ってしまいます

たとえば

c1 = getchar();
c2 = getchar();

とかき
c1には 'a' c2には 'b' を入力しようとすると
aだけ入力した後終了してしまうと思います

これは

まずキーボードから'a'を受け取りc1に格納

次にエンターをを押したことにより '\n' を格納してしまいます
※\nは改行です

私もなかなか解決できなく時間がかかりました

結果的には以下の形で解決することができました



c1 = getchar();
none = getchar(); //追加
c2 = getchar();
none = getchar(); //追加


noneに'\n'を入れることでc2にい入るのを防ぎました


fflush(stdin)や'\n'のときcontinueをつかってやるやり方もありますが課題の関係上こういった形になりました

課題って結構ためになりますねえ

あとscanf_sには第三引数があるとか。。。。