#include <stdio.h> int main(void) { int a; char b; scanf("%d",&a); scanf("%c",&b); printf("%c\n",b); return 0; }
scanf()를 다시 보세요
아마도 엔터를 문자로 인식하기 때문일껍미다..
scanf("%d",&a); scanf("%c",&b); scanf("%c",&b);
scanf를 두번 연달아 씀으로써 해결할수 있지만.. 보기는 그리 좋치 않네요..
문자를 먼저 받고 숫자를 받으세요
scanf("%c",&b); scanf("%d",&a);
============================================================
선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스- 의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-
그런 이유가 있었네요.. 그런데, 왜 그렇게 되는거죠????
터미널이 canonical mode로 운영 되기 때문입니다. 질문하신 프로그램을 실행하기전에 stty -icanon 하신 다음에 실행해 보십시요. 그 상태에서 cat - 해보셔도 차이를 아실 수 있을 겁니다. terminal 관련 howto에서 canonical, non-canonical 관려 부분을 보시면 이유를 아실 수 있을 겁니다.
감사합니다
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
scanf()를 다시 보세요
scanf()를 다시 보세요
그건..
아마도 엔터를 문자로 인식하기 때문일껍미다..
scanf("%d",&a);
scanf("%c",&b);
scanf("%c",&b);
scanf를 두번 연달아 씀으로써 해결할수 있지만..
보기는 그리 좋치 않네요..
문자를 먼저 받고 숫자를 받으세요
scanf("%c",&b);
scanf("%d",&a);
============================================================
선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-
============================================================
......
그런 이유가 있었네요..
그런데, 왜 그렇게 되는거죠????
터미널이 canonical mode로 운영 되기 때문입니다.질문하신
터미널이 canonical mode로 운영 되기 때문입니다.
질문하신 프로그램을 실행하기전에
stty -icanon
하신 다음에 실행해 보십시요.
그 상태에서 cat - 해보셔도 차이를 아실 수 있을 겁니다.
terminal 관련 howto에서 canonical, non-canonical 관려 부분을 보시면 이유를 아실 수 있을 겁니다.
....
감사합니다
댓글 달기