본문 바로가기

내가 꾸는 꿈

간단한 계산기 만들기 #3, 문자열 #1[노베이스 게임개발 13일차]

반응형

 

먼저 제곱에 대한 케이스는 저번에 배운 내용을 활용하여 간단하게 작성했다.

case 'p'일 경우에 pow(input1, input2)로 연산을 하여 계산을 완료했다.

 

그다음 프로그램을 종료시키는 x의 경우에는 어떻게 할까 고민하다 valid값을 수정시키기로 하였다.

맨 처음에 valid값을 0으로 설정시켜 놓은 후 0인경우에는 결괏값을 출력하도록,

x를 입력할 때 valid값을 2로 설정하여 "프로그램을 종료합니다" 구문을 실행시킴과 동시에 프로그램이 종료되도록,

그 외의 값을 입력하면 처음처럼 "올바른 연산자를 입력해 주세요." 문구를 실행하며 프로그램이 종료되도록 만들었다.

 

문제는 r을 이용하여 랜덤한 연산자를 이용하도록 하는 문제였는데

먼저 r값을 받은 후에 랜덤한 연산자를 이용해야 하므로 case 'r'을 실행시켜야 하는 건 맞는 것 같은데 그럼 그 안에 각각 연산을 따로 입력한 후 값을 임의로 지정하여 그 안에서 랜덤으로 출력하게 해야 하는 건지, 랜덤으로 불러온 값을 변수로써 사용할 수 있는 것인지 알 수 없어 강의를 통해 해답을 찾아보았다.

 

 

랜덤 한 연산을 어떻게 구현할지는 여러 가지 답이 있지만 내가 생각한 것처럼 랜덤으로 값을 만들어준 후 그 값에 맞는 연산을 일일이 적어주는 식으로 문제를 풀어냈다.

나는 스위치구문을 다시 되돌려서 실행하는 것이 깔끔하다고 생각했는데 그건 더 공부하고 나서야 배울 수 있는 듯하였다.

 

그리고 지난 시간에 오류를 고치는 중에 원인을 알 수 없었던 오류에 대해서 해답을 찾아내었다.

저번 포스팅에서 result를 선언과 동시에 할당을 하려 하자 오류가 발생했는데 그 이유는 switch 구문 안에서는 변수를 선언할 수 없는 것이었다.

그래서 여기서도 w를 스위치 구문 내에서 선언과 동시에 할당을, 즉 int w = rand() % 6; 이런 식으로 하면 오류가 발생하고

스위치 구문 밖에서 int w;를 해준 후 스위치구문 내에서 w를 그냥 사용하여 문제를 해결하였다.

 

그리고 랜덤 한 수를 변수처럼 사용하는것은 생각보다 쉬웠다. 54번째 줄처럼 그냥 변수 하나를 만들고 그 변수에 랜덤 한 값을 할당하면 되는 것이었다.

 

이렇게 나의 첫 프로그램인 계산기를 만들어 보았는데 굉장히 뿌듯하고 뭔가 해낸 것 같아 기분이 매우 좋다.

조금씩 실력이 향상되는 것 같아 계속해서 이 일을 지속 할수 있도록 동기부여가 되는 것 같다.

 

 

그다음으로 알아본 내용은 문자열에 대한 내용이다.

더보기

문자열 : 문자의 배열이라는 뜻으로 문자 여러 개가 나열된 형태

이는 말 그대로 글자, 문자를 다루는 것을 말한다.

 

본격적으로 시작하기 전에 이제부터는 헤더파일에 기본적인 코드들을 입력하고 시작할 것이다.

이제부터 '#define _CRT_SECURE_NO_WARNINGS'를 이용하여 scanf를 _s 없이 사용할 것이다.

이는 또한 문자열 관련 함수 사용에도 도움이 되므로 앞으로 고정적으로 사용할 코드이다.

 

그리고 오늘 배울 문자열과 관련된 헤더파일인 cstring도 포함해서 입력해 준다.

이렇게 헤더파일을 만든 후 소스파일에 Header.h로 한 번에 불러온다.

 

문자열을 사용하는 방법은 두 가지 방법이 있는데 지금 알아볼 내용 외의 다른 방법은 포인터 시간에 배울 예정이다.

char ~~[숫자]를 통해서 문자열을 사용할 수 있는데 대괄호 안의 숫자는 문자열의 크기를 예측하여 값을 지정해야 한다.

대괄호 안에 고정적인 값 외에도 유동적인 값을 넣을 수 있는데 이때 필요한 것이 포인터이다.(이때 변수는 넣을 수 없다.)

 

이 배열변수에 문자열을 집어넣기 위해서는 strcpy() 함수를 이용한다.

그림처럼 strcpy함수 안에 배열변수와 그 변수에 집어넣고자 하는 문자를 넣어주면 된다.

이는 변수 = 값의 형태와 비슷하다고 생각하면 된다.

이후 출력하게 되면 Hello World!라는 문자를 출력할 수 있게 된다.

 

후기:

오늘은 계산기 프로그램을 더 심층적으로 구현해 내고 문자열에 대해 출력 부분까지 공부했다.

계산기 만드는 과정은 나를 더 흥미롭게 만들어 주었고, 문자열을 공부하는 것은 더 많은 가능성을 보여주었다.

앞으로가 기대되는 하루였다.

 

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형