scanf 에 대한 2번째 문의..
글쓴이: keaton32 / 작성시간: 목, 2006/11/23 - 12:19오전
아..그리고
scanf로 입력받는 경우
원래 값을 받기위해 넌 블럭킹상태로 들어가야 하는 거 아닌가요??
그런데 바로 값을 읽지 않고 무시하고 넘어가 버리는 경우 가 있는 그때는 어떻해야 하나요??
int run_flag;
..................
...............
........
run_flag = 1;
..................
...............
........
printf("Do u wanna continue?? (a or b) : ");
fflush(stdin);
scanf("%d", &run_flag);
printf("\n");
printf("Run_flag =%d", run_flag);
scanf() 명령어 라인에서 입력값을 받아야 하는데 무시하고 그냥 전에 입력되어 있던 1이 출력됩니다.
어떻게 해야 scanf()에서 입력받을 수 있는 건지??
아시는 분 있으시분 답변 부탁드립니다.
Forums:
nonblocking?
환경은 어떻게 되죠?
입력 file 은 어떻게 되나요?
환경은 리눅스
환경은 리눅스 페도라 코어4 이고
입력 file 이라니요??
원래 전체 소스(client.c)가 시리얼통신(ttyS1)으로 해서시리얼 값 받은 다음에 서버로 전송해서 그 시리얼에 해당되는
정보(구조체 변수)를 가져와 출력하는 것입니다.
여기서 run_flag는 다음에도 실행 여부를 나타내주는 변수 입니다. 1이면 계속, 2이면 종료..
전체 소스 첨부합니다. 제가 워낙 초보인지 소스 상태가 거의 엉망이니 흉보지 말아주세요 -_-;
헉 짤려서 파일로 첨부합니다.
code tag 로 감싸세요.
bbcode 로 감싸주시기 바랍니다.
그런데...
printf("Before stdin =%d\n", stdin);
fflush(stdin);
이거 의도가 뭐죠?
fflush(stdin) 은 MS OS 계열에서만 되는 것으로 알고 있습니다.
아..그런 가요..저는
아..그런 가요..
저는 입력버퍼에 쓰레기 값이 들어가 있는 거 같아..
fflush(stdin)을 사용한 것인데 소용이 없는 거 같습니다.
그리고 code tag ?? bbcode 가 무엇인지??
scanf() 근처 어느 부분에 어떻게 사용해야 하는 것인지??
좀 자세히 부탁드립니다.
login 하기 전에 이 page 를 보시면 bbcode 에 대해 나올겁니다.
예전에는
stdin 이 아니라면
stdin 이 아니라면 tcflush() 를 고려해보시지요 ?
댓글 달기