|
초보 님이 쓰신 글 :
: 지금 레포트 쓰고 있는데;...
:
: 하다가 도무지 안되서..글 올려봅니다.
:
: 문제가 뭐냐면...
:
: -> 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 블럭 밑에 넣어보세요.
그리고 문제가 '각 문자의 수'를 구하라고 한 것 같은데 이건 모든문자의 총합이 아닌가요?
|