まず最初に:
SCANF言語によって定義されていません。
CHAR言語によって定義されていません。
さて、それは邪魔になりません...
このscanf()関数は整数を返します。その整数は、割り当てられた入力項目の数、またはEOF最初の変換の前に入力エラーが発生した場合のマクロの値です。
呼び出しの戻り値を確認しなかったscanf()ため、何が起こったのかわかりません。すべてが正常に機能したか、最初の変換の前に入力ストリームが終了したか、(%cではなく)変換に失敗した可能性があります。
の戻り値をテストしますscanf()。実際、常にすべての<stdio.h>関数の戻り値をテストしてください。
char ch;
int result = scanf("%c", &ch);
if (result == 1) /* all ok */;
else if (result == 0) /* conversion failure: value of `ch` is indeterminate */;
else if (result == EOF) /* input failure; value of `ch` is indeterminate */;
scanf()呼び出しの結果がであるEOF場合、入力失敗の理由に関する詳細情報が必要な場合は、feof()および/またはを使用できますferror()。
else if (result == EOF) {
if (feof(stdin)) {
/* no data in input stream */
}
if (ferror(stdin)) {
/* error if input stream (media ejected? bad sector? ...?)
}
}
あなたの質問に答えるには:what will promptChar() return?
char型の不確定な値を返します。
文字を処理し、からintを返すライブラリ関数の例に従うことができますpromptChar()。これは、読み取られた文字の値、unsigned charまたはエラーの場合は負のint(EOF)になります。fgetc()たとえば、の説明を読んでください。