if文で条件分岐させた後の入力について
Posted: 2012年1月16日(月) 22:05
はじめまして。さっそく質問させていただきます。
私はC言語を勉強し始めて3か月半なんですが、練習でとあるプログラムを組んでいます。
if文で分岐した後に文字列を入力する部分のあるプログラムを組んでいるのですが、次のコードのプログラムでyを入力すると、入力の部分が無視され最後まで処理が進んでしまいます。
以下のコードは例です。
yを入力した後の入力を無視せず、ちゃんと入力して結果を返すようにしたいのですが、原因がわかりません。
使っているOSは Windows7
使っているコンパイラは Microsoft Visual C++ 2010 Expressです。
教えていただければ幸いです。
私はC言語を勉強し始めて3か月半なんですが、練習でとあるプログラムを組んでいます。
if文で分岐した後に文字列を入力する部分のあるプログラムを組んでいるのですが、次のコードのプログラムでyを入力すると、入力の部分が無視され最後まで処理が進んでしまいます。
以下のコードは例です。
#include <stdio.h>
int main(void)
{
char choice,name[8];
printf("名前を入力してください。入力したいならyを、したくないならnを入力してください\n");
choice = getchar();
if(choice == 'y'){
fgets(name,sizeof(name),stdin);
printf("%s\n",name);
}else if(choice == 'n'){
printf("名無し?\n");
}
return 0;
}
使っているOSは Windows7
使っているコンパイラは Microsoft Visual C++ 2010 Expressです。
教えていただければ幸いです。