2016-11-02 8 views
0

tommorow에 필터를 사용하여 연결해야합니다. 내가 필요로하는 기능을 만들었습니다하지만이처럼 보이는 내 주요 기능에 문제가 : 나는 그것을 컴파일하려고하면전환 명령이 작동하지 않습니다.

int main (int argc, char *argv[]) 
{ 
    printf ("Select program: \n1-makeLower \n2-makeUpper \n3-makeChange"); 
    switch(*argv[1]) 
    { 
    case 1: 
    makeLower(); 
    break; 
    case 2: 
    makeUpper(); 
    break; 
    case 3; 
    makechange(); 
    break; 
    default; 
    printf ("Error"); 
    break; 
    } 
    return 0; 
} 

오류가 "pp2.exe의 작동이 중지되었습니다"가 나타납니다. 이 문제를 해결할 수 있도록 도와 주시겠습니까? 또한 일부 데이터를 필터링하기 위해 명령 줄에서이 프로그램을 사용해야합니다. switch 명령을 올바르게 사용 했습니까? 명령 줄에서 작업하는 동안 beetwen 기능을 전환 할 수 있습니까?

+1

'switch (argv [1] [0] - '0')'시도해보십시오. –

+2

이상 switch (atoi (argv [1]))와 유사합니다. –

+0

둘 다 작동합니다. 그러나'argv'는 명령 행 인자이므로'argv'가 아닌 입력을 요구하고 있기 때문에 이것도 최적이 아닙니다. –

답변

0

인덱싱 된 인수를 역 참조 할 필요가 없습니다. 인덱싱 된 인수를 인덱싱하면 문자열을 역 참조합니다. *argv[1]argv[1]이어야합니다. 전환하기 전에 해당 문자열을 정수로 변환해야합니다.