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には第三引数があるとか。。。。