• ベストアンサー

入力した文字列の文字コードを16進数で出力

入力した文字列の文字コードを16進数で出力するプログラムを作っているのですが 下のように記述してもどうしても最後にaが表示されてしまいます。 打開策、または何故aが表示されるのかを教えてください。 #include <stdio.h> main() { int str; while(1){ str=getc(stdin); if(str==EOF) break; printf("%x ",str); } return 0; }

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

Enterキーのキーコードが出力されています。 http://www.kijineko.co.jp/tech/superstitions/fflush-with-input-stream.html Visual studioならfflush(stdin)でもできそうですが、あまりおすすめしません。 #include <stdio.h> int main(void) { int str; while(1){ str=getc(stdin); if(str==EOF) break; if(str!='\n') printf("%x \n",str); } return (0); } 読み飛ばしの方がよいかもしれません。