3

こんにちは、私は任意の 1 文字を読み取り、その文字の ASCII 値を出力するプログラムを終了しましたが、ループすると、Enter と他の文字を読み続け始めます。

私の他の問題は、「#」を読み取ったときにプログラムを停止し、それを無効として出力することです。これは実行できないようです。コードは次のようになります。

#include <stdio.h>
int main() {
  char input;
  while (input != '#') {
    printf("\nEnter character: \n");
    scanf("%c*c", & input);
    printf("The ASCII value is: %d", (int) input);
    if (input == '#') break;
  }
  printf("\n# is invalid");
  return (0);
}
4

3 に答える 3

3

で改行を抑制しようとしました

scanf("%c*c", & input);

%しかし、あなたは抑圧のことを忘れていました。

scanf("%c%*c", & input);

あなたがしたいことをするべきです。

于 2013-04-14T09:57:23.013 に答える
0

fflush(stdin);scanf の後に試す

于 2018-09-27T07:19:08.287 に答える