この人頭いいなと思ったエピソード

環境
msys2, mintty, bash, gcc8.2.0

ソースコード
#include <stdio.h>
int main(){
unsigned char a, b;
printf("a = "); fflush(stdout); scanf("%d", &a);
printf("b = "); fflush(stdout); scanf("%d", &b);
printf("a = %d, b = %d", a, b);
return 0;
}

実行結果
(入力はa=5, b=10とします)
a = 0, b = 10

ソースの間違いの他には端末の設定とかインストールのミスを疑っています。解決方法を知っている方教えてください。ただしコンパイラを変えることはできません。

A 回答 (1件)

scanf で、書式%dはintのサイズの領域に入力を格納する。


領域サイズが足りていないと予測し難いことが起きる。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。charをintに変えたら動きました。助かりました。

お礼日時:2018/11/04 20:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!