そのため、ユーザーに私のプログラムを繰り返したいかどうか尋ねようとしていますが、時々奇妙な結果が得られます。毎回発生するわけではなく、何が原因なのかわかりません。
「q」の代わりにrepeatProgramに「q」を入力した後、「return」を割り当てているように見えますが、その理由はわかりません。
動作時の出力:
終了するには q を入力し、続行するには y を入力します。入力しました。これは有効なオプションではありません
。
失敗したときの出力:
終了するには q を入力し、続行するには y を入力します。
q
を入力しました
。これは有効なオプションではありません。
コード:
char RepeatProgramPrompt()
{
char repeatProgram;
do
{
printf("\nTo exit enter q, to continue enter y.\n");
scanf("%c%*c", &repeatProgram);
repeatProgram = tolower(repeatProgram);
if(repeatProgram != 'y' && repeatProgram != 'q')
{
printf("\nYou've entered %c, that isn't a valid option.\n", repeatProgram);
}
}while(repeatProgram != 'y' && repeatProgram != 'q');
return(repeatProgram);
}
だから私の質問は、なぜこれが起こっているのですか? 何度か試行しても問題なく動作し、失敗するだけです。
初めての投稿なのでフォーマットが間違っていたらごめんなさい。