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

C++빌더 Q&A
C++Builder Programming Q&A
[44836] Re:왜 이리 안돼냐.ㅡ.ㅡ
마봉검 [skydream] 825 읽음    2006-05-11 23:38
초보 님이 쓰신 글 :
: 지금 레포트 쓰고 있는데;...
:
: 하다가 도무지 안되서..글 올려봅니다.
:
: 문제가 뭐냐면...
:
: -> C++로  하나 이상의 영문자를 입력받아 각 문자의 수를 구하는 프로그램을 작성하라.
:               (단, 영문자가 아닐경우 재입력)
:
: #include <iostream.h>
:
: void main()
: {
:     char ch;
:     int word, flag=1;
:
:     word = 0;
:
:     cout << "문자열(영문자)을 입력하세요!" << endl;
:
:     while(1)
:     {
:         cin.get(ch);
:
:         if( ch == '\n')  //cin.eof() ||
:                 break;
:        
:         if (( ch >= 'a' && ch <= 'z' ) || ( ch >='A' && ch <= 'Z' )) {
:             ++word;
:         }
:         else {
:            
:             cout << "영문자가 아닙니다. 다시 입력하세요! " << endl;
:             word = 0; // 영문자가 아니면 다시 계산
:        
:         //    cin.get(ch);
:             cin.ignore();
:        
:         }
:     }
:     cout << "문자수 : " << word << endl; 
: }
:
:
:
: 이렇게 했는데...문제가 많이 생기네요.
:
:
: 뭐냐면..
:
: 문자 입력하면 개수는 잘 나오는데.
:
: 결정적으로...
:
: 숫자같은거 입력하면..
:
: "다시 입력하세요" 한번만 출력하고 재 입력을 받아야 하는데...
:
: "다시 입력하세요"가 여러번 출력 되네요.ㅡ.ㅡ
:
: 그리고 영문자가 아닌 임의의 숫자 같은 것을 길게 입력하면..그냥 프로그램이 종료되네요.
:
: 아..!!
:
: 왜 글지??
:
: 조언 기다릴께요.

cin.ignore(); 의 위치가 잘못된 것 같습니다.
else 블럭 밑에 넣어보세요.
그리고 문제가 '각 문자의 수'를 구하라고 한 것 같은데 이건 모든문자의 총합이 아닌가요?

+ -

관련 글 리스트
44830 삭제된글. 초보 766 2006/05/11
44836     Re:왜 이리 안돼냐.ㅡ.ㅡ 마봉검 825 2006/05/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.