私はこのループを持っていますが、私のキャラクターの後ろにEnterキーを押すと、それが処理され、入力を再度要求する前に '\ n'を処理します。お願いします!!!!入力としてコンソールから改行文字を削除する
int input;
while (true){
input = getchar();
fflush(NULL);
input = input - '0';
if(input != 'e' && input != '\n') {
rc = state_fun(input);
}
5[ENTER]
プロセス5は、入力として( '\ n' はASCIIである)、10、再度入力を要求助けます。それは私をナット駆動しています
whileループの最後にダミーのgetchar()を追加して、 '\ n'を消費します。 – Pooya
stdinをフラッシュする移植可能な方法は 'int c; while((c = getchar())!= '\ n' && c!= EOF); '。 'fflush(stdin);は標準では未定義の動作だと言っているので、' fflush(NULL) 'は' stdin'をフラッシュしません。 –
あなたは入力から '' 0 ''を引いただけです。その後、結果値*を 'e'または' \ n 'に対してテストするので、 ':'を押すと条件が真となります –