Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1399] 어떤 것을 만드시는지..
이영우 [userof] 1605 읽음    2002-10-21 16:27
fflush()는 말씀대로 다 날려버리지요.
scanf()의 입력은 입력후 프로그램에 영향을 주기 때문에,
(처리후 '\n'이 남아서 영향을 줍니다)
사용후 다 닦아버릴때 주로 사용합니다.

scanf()에도 리턴값이 있답니다.
이것을 참고해보시구요.

만약에 원하시는 대로,
원하는 입력값이 들어올때까지 계속 입력을 받으시려면

예를 들면,

do {
  scanf("%d",&key);
  fflush(stdin);
} while(key...);
 
이렇게 루프로 구성해보시든지요.

저라면, 복잡한 input에는 그렇게 하지 않구요.
새로 함수를 만들겁니다.
gets()있잖아요.
이걸로 일단 문자열에 입력을 다 받은후
원하는 양식으로 문자열을 가공합니다.
이런식으로 하는 것이 비효율적이라고 볼 수도 있지만,
원하는 대로 조작이 얼마든지 가능하거든요.

수고하세요.

inetinfos 님이 쓰신 글 :
: 답변주셔서 감사합니다.
: 그런데 프로그램을 다시 짜다보니 궁금증이 생겼는데요.
: 무조건 fflush()함수를 쓰기전에 scanf()오류가 생겼는지 검사하고 싶거든요
:
: 그리고 fflush()함수를 쓰면 프로그램에서 읽지 않았더라도 입력한게 다 날아가잖아요.
: 다른 함수는 없나요?
:
:
: 이영우 님이 쓰신 글 :
: : suksun 님이 쓰신 글 :
: : : scanf()함수를 이용해서 입력받으려고 하는데 사용자가 적절하지 않은 값을 입력하면 담번엔 입력 앙받잖아요.
: : : 근데 담번에도 입력받아 내고야 말거거덩여.
: : : 이럴 땐 어케 해야 하남요?
: : : clearerr(stdin); 명령을 써도 효과없네요.

+ -

관련 글 리스트
1319 scanf()함수에서 오류났을 때 오류지우는 법 suksun 1836 2002/10/09
1395     fflush()도 써보셨는지요?(내용무) 이영우 1771 2002/10/21
1397         Re:scanf()에러가 났는지를 알려주는 함수는.... inetinfos 2283 2002/10/21
1399             어떤 것을 만드시는지.. 이영우 1605 2002/10/21
1398             scanf() 의 리턴 값을 보면 됩니다. 김백일 2817 2002/10/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.