入力した数を 指定した進数で表示するプログラムを作りたいのですが、
後ろのscanfが入力できずに処理が終わってしまいます。
下のような実行画面になってしまい、どこが違うのかが把握できません
教えてください。
{
数を入力 10
アルファベット?(略)10
}
入力した数字の変換
Re: 入力した数字の変換
最初のscanfで入力した改行が次のscanfに入力されてしまっています。
この関数を最初のscanfの後で呼び出すといいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 入力した数字の変換
Ideoneだとうまく動くんだけどなあ・・・
C言語で実行:http://ideone.com/8L10j
C++で実行:http://ideone.com/2Prlc
ほかの人の返信を待ちましょう。
#include<stdio.h>
void deletenewline(void) {
int c;
while(1) {
c=getchar();
if(c=='\n' || c==EOF)break;
}
}
main()
{
char m;
int su;
printf("10進数の整数");
scanf("%d",&su);
deletenewline();
printf("アルファベット(o or h or d)?");
scanf("%c",&m);
switch(m){
case 'o' : printf("%o",su); break;
case 'h' : printf("%x",su); break;
case 'd' : printf("%d",su); break;
default: printf("%d",su); break;
}
}
C++で実行:http://ideone.com/2Prlc
ほかの人の返信を待ちましょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)