PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/05/03 03:51:25
Name 하만
Subject c++ 프로그래밍 질문입니다.
switch를 문자열로 사용할 수 없나요?

        case 'sin':
                sine(fnum);
                break;
        case 'cos':
                cosine(fnum);
                break;
        case 'tan':
                tan(fnum);

이런식으로 말이죠;

공학용 계산기 과제를 하고 있는데...

이 부분이 해결이 안되네요.

현재 제가 짜놓은 함수는

void Calculator::func(char fun, double fnum){                //기능 선택함수
        switch(fun){
        case 'sin':
                sine(fnum);
                break;
        case 'cos':
                cosine(fnum);
                break;
        case 'tan':
                tan(fnum);
                break;
        case 'asin':
                asin(fnum);
                break;
        case 'acos':
                acos(fnum);
                break;
        case 'atan':
                atan(fnum);
                break;
        case 'root':
                root(fnum);
                break;
        default:
                cout << "잘못된 명령어 입니다." << endl;
                ferror = 1;
        }
}

이런 모양인데 어떻게 입력값을 넣어야 하는건가요?


추가 질문

만약에 switch 에서는 문자열을 사용 할 수 없다면
strcmp를 사용해서 if문으로 해야 할 것 같은데
c에서 사용하는 strcmp는 헤더가 string.h인데
c++에서는 어디에 있나요? 혹시 사용법이 다른가요? (사용이 안되더군요 ㅠ_ㅜ)

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
chcomilk
09/05/03 03:57
수정 아이콘
없습니다.

Java에서는 가능 합니다.
09/05/03 04:07
수정 아이콘
chcomilk님// 그렇군요 ㅠ_ㅜ
답변 감사합니다.
MoreThanAir
09/05/03 04:20
수정 아이콘
매크로를 사용하시는건 어떨까요?

#define SIN 0
#define COS 1
...

이런식으로 하는게 일반적이지 말입니다-
화이트푸
09/05/03 11:03
수정 아이콘
아니면 strcmp를 사용해야 하지 않을까 싶습니다.
아마 <string> 일텐데요.
정신놓은너구
09/05/03 19:33
수정 아이콘
char *instr[] =
"sin", "cos", "tan", "asin", "acos", "atan", "root"
;
int i ;

for ( i = 0; i < 7; i++ )

if (!strcmp(fun, instr[i]))
break;


switch (i)

case 0: ...
case 1: ...
default:
cout << "에러네요.";
break;


요론 식으로 i 값으로 각 명령어 구분해서 switch 하시는 일반적인 방법도 있습죠.
09/05/03 19:40
수정 아이콘
c에서 되는 코드는, 명시 안 되면 int로 가정하는 것과 포인터의 타입캐스팅이 의무화 된 것 외에는 정상적으로 C++에서 컴파일되어야 정상입니다.
09/05/03 23:12
수정 아이콘
정신놓은너구리님// MoreThanAir님// 화이트푸님// 답변 감사합니다.
kcm1700님// 답변 감사합니다.

strcmp는 cpp에서는 <cstring>에 있더군요;
dozing_lamb
09/05/04 09:22
수정 아이콘
enum Calc
SIN, COS, TAN
;

void Calculator::func(Calc cho, double fnum){ //기능 선택함수
switch(cho){
case 'SIN':
sine(fnum);
break;
case 'COS':
......
위와 같은 방법도 됨니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
54978 팀플시 저그 질문입니다. [6] 별비1599 09/05/03 1599
54977 메가박스 이벤트때문에 문의드립니다. [7] waver3284 09/05/03 3284
54976 워크래프트 3 커스텀 캠페인 제목 질문입니다. sinfire4315 09/05/03 4315
54975 저랑 비슷한스팩 가지신분 바지사이즈 몇입으시나요?? [14] DeStinY....2302 09/05/03 2302
54974 喪中 이라는 글자를 가게 문 앞에 붙이려는데 규격같은게 있는지요? [1] 배려5247 09/05/03 5247
54973 몸을 좀 탄탄하게(?) 만들고 싶은데요... [13] 비야레알2188 09/05/03 2188
54972 스노우보드 매니아분들께 견적(?) 질문 드립니다~! Dizzy2130 09/05/03 2130
54971 dslr 구입 질문드립니다. [9] Vacant Rain1822 09/05/03 1822
54970 윈도우 설치 때문에 미치겠습니다. [1] 칼새1629 09/05/03 1629
54969 안쓰는 컴퓨터 부품은 어떻게 처리하나요? [1] 새벽공기2149 09/05/03 2149
54968 전투복 뒤 다림줄 선호도 질문 [17] 애무부장관1792 09/05/03 1792
54967 홈쇼핑 컴퓨터 질문입니다. [3] 一切唯心造2123 09/05/03 2123
54965 mvp 2002나 2003을 구하려고 합니다. [2] 미남주인1585 09/05/03 1585
54964 식물남,동물남을 아시나요? [2] 빛속의어둠3365 09/05/03 3365
54963 익스프롤러 드래그 우클릭했을때 생기는거 없에는 방법좀 알려주세요~ [3] Naraboyz2088 09/05/03 2088
54962 장거리 달리기와 체성분 질문입니다. [4] 긴지로2021 09/05/03 2021
54961 서울 데이트 코스좀 추천해 주세요. [3] GoThree2915 09/05/03 2915
54960 자유게시판에 있는 '도대체 나란 무엇인가?' 라는 글처럼..철학적인 글..찾아요 개그맨1935 09/05/03 1935
54959 이건 어디 제품이 좋나요?? [5] 미역국2312 09/05/03 2312
54958 c++ 프로그래밍 질문입니다. [8] 하만2153 09/05/03 2153
54957 얼굴에 살 좀 찌셨던 분들께 질문 [1] EZrock1952 09/05/03 1952
54956 오무라이스 질문입니다 [2] 케빈1609 09/05/03 1609
54955 고전게임 질문입니다. [2] 허느님맙소사2130 09/05/03 2130
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로