본문 바로가기

Stupid Computer/2. C 언어

[C/C++] Menu 화면 구성 ! if else if ~ ( 메뉴 10개 이상 넘어갈때 )


코딩을 하다가 메뉴 화면을 선택하도록 유도를 할 때

GUI를 통한 터치 이벤트를 구현한게 아니라면 

결국 int형으로 문자열입력받아 메뉴 선택하도록 할거다. 

switch(menu){

case  1 : ~~~

case  2

}

아마 이런식으로 짜겟지 ? ?

하지만 문제는 menu가 10개가 넘어가는 경우라던지, input으로 숫자만 받아와야 하는데 문자를 입력했을때다. 

우선 숫자대신 문자를 입력하면, 우리의 바램은 에러처리를 해주길 원하지만, 

int형 인식을 못해서 결국 마구 돈다. 마구마구 돈다. (while문일경우 ) 

이래서 char형으로 선언하고 값을 비교하면 되겟지만, char형은 1자리의 숫자만 비교 가능하다. 

결국 14는 1 + 4로 구분하여 메뉴1과 메뉴4를 동시에 호출 한달까?


그래서 찾아낸 방법이 아래의 예제에 담겨있다.

배열로 [2]나 [3]으로 선언을 한 후 ( [3]이면 세자리 메뉴까지 받아야하는데 이렇게 많은걸 한번에 출력하기보다는 이런 경우 하위 메뉴로 나누는게 더 나을듯 싶다. )

입력 받고, if문으로 strcmp함수를 이용하여 문자열을 비교 한다.