본문 바로가기
C언어

세이버의 C언어 강의 7강_간단한 값을 입력해보자

by 비원(Be one) 2018. 10. 28.
반응형

여러분 안녕하세요. 세이버입니다.

 

저번 강에서 변수를 배워보았습니다.

하지만 변수에 값을 넣을 때 사용자가 원하는 값을 넣지 못했습니다.

그래서 이번 강에서는 사용자가 원하는 값을 넣는 법을 배워보겠습니다.


1. 입력이란 무엇인가?

저번에 배운 출력(出力, output)이 모니터, 스피커 같은 출력장치에 데이터를 보여주는 거라면,

입력(入力, input)은 반대로 키보드, 마우스 같은 입력장치를 통하여 데이터를 넣는 겁니다.

 

그럼 데이터를 어디에다가 넣느냐???

바로 변수에다가 넣습니다.

그래서 제가 저번 강에서 입력을 먼저 안 하고 변수를 먼저 강의한 겁니다.

 

큰그림

혹시 변수를 모르시는 분이 있으시다면 6강을 보고 오시는 걸 추천드립니다.

 

세이버의 C언어 강의 6강_변수란 무엇인가 : https://poci.tistory.com/8

 

세이버의 C언어 강의 6강_변수란 무엇인가

여러분 안녕하세요. 세이버입니다. 저번 강을 끝으로 printf 함수를 이용한 출력에 대해서 알아보았습니다. 그래서 원래 이번 강에서는 입력하는 법을 알려보려고 했는데요, 입력을 하기 위해서는 우선 변수라는..

poci.tistory.com

출력을 할 때와 마찬가지로 입력을 할 때도 함수를 사용합니다.

출력할 때는 printf 함수를 사용했다면, 입력할 때는 scanf(scan(살피다)+f) 함수를 사용합니다.

scanf 함수의 사용법은 printf 함수와 비슷합니다.


scanf 사용법

 

scanf("서식문자", &변수이름);


scanf 함수는 printf 함수와는 달리 " "안에 서식문자만 쓸 수 있습니다.

그리고 " "밖에는 값을 넣을 변수의 이름을 써주면 됩니다.

 

엥??

그런데 뭔가 이상한 게 있습니다.

printf 함수에서는 변수이름을 그냥 쓰면 되지만, scanf 함수는 변수이름 앞에 &를 넣습니다.

&는 주소 연산자, [&변수]는 변수의 주소를 의미합니다.

&를 붙여야 하는 이유는 scanf가 변수를 찾아갈 때 주소를 찾아가기 때문입니다.

 

이해가 안 되시는 분들은 그냥 scanf 함수에는 &가 필요하다고 암기하시길 바랍니다.

많은 분들이 이거를 많이 헷갈려하시고, 이거 때문에 오류도 많이 냅니다.

 

 

2. 입력을 해보자.

그럼 이제 실습해보겠습니다.

우선 scanf 함수도 printf 함수와 같이 stdio.h 헤더파일에 정의되어 있으니 stdio.h를 인클루드 해줍니다.

그런 다음 정수형 변수를 하나 선언합시다.

 

그런 다음 scanf 함수를 써봅시다.

 

여기서 a는 정수형 변수니까 scanf 함수에 서식문자 %d를 썼습니다.

다시 강조하시만 &를 꼭 써주세요.

 

이렇게 하시면 여러분들이 키보드로 입력한 수가 a에 저장될 겁니다.

그럼 이제 printf 함수로 a의 값을 출력해봅시다.

 

이렇게 하시면 8행에서 scanf 함수로 a에 값을 넣고, 10행에서 printf 함수로 a의 값을 출력합니다.

이제 실행하시면 키보드로 입력한 값이 출력될 겁니다.

 

 

 

영상처럼 입력과 출력이 되면 됩니다.

 

3. 응용해보자.

그럼 이제 입력을 이용해서 쓸만한 프로그램을 하나 만들어봅시다.

 

두 정수를 입력받아서 합을 출력하는 프로그램을 만들어봅시다.

그럼 변수는 총 몇 개가 필요할까요??

 

두 개라고 하신 분들은 조금 더 공부하셔야 합니다.

두 정수를 입력받을 정수형 변수 두 개, 합을 저장할 변수 한 개 총 세 개가 필요합니다.

 

그럼 정수형 변수 세 개를 선언하고 두 개의 변수에다가 값을 입력하도록 해줍시다.

 

그런 다음 변수 a와 변수 b의 값을 더해서 변수 c에 넣은 후, 변수 c의 값을 출력하면 됩니다.

 

이런 출력값이 나오면 됩니다.

 

4. Tip

이 부분은 팁으로 안 보고 넘어가셔도 무방합니다. 근데 보면 좋아요.

 

위에서 처럼 이런 식으로 프로그래밍하시면 작동은 되지만 문제가 하나 있습니다.

가독성이 떨어진다는 것입니다.

 

가독성이 떨어지면 무슨 문제가 있나??

지금처럼 짧은 코드에는 별 문제는 없지만 100행이 넘어가는 코드에서 가독성이 떨어지면 나중에 코드를 수정할 때 코드를 이해하기가 엄청 힘들어집니다.

 

또한, 본인이 만든 코드라 할지라도 시간이 지나면 어떤 변수가 무슨 역할을 하는지 잊어버릴 수 있습니다.

이런 경우에 가독성이 떨어지는 코드에서는 코드를 다시 처음부터 읽어야 하지만, 가독성이 높은 코드는 읽지 않아도 어떤 변수가 무슨 역할을 하는지 바로 알 수 있습니다.

 

그럼 가독성을 높이기 위해서는 어떻게 해야 할까요?

변수의 이름을 쓰임에 맞게 정하면 됩니다.

위의 코드에서 a, b, c 가 어떤 역할을 하는 변수인지 한눈에 알아보기 쉽지 않습니다.

그래서 변수 a, b, c의 이름을 조금 더 정확하게 명시해주어야 합니다.

 

아까보다 조금 코드를 이해하기 쉬워졌죠???

이렇게 변수 이름을 명확하게 해주는 것만으로도 코드의 가독성이 높아집니다.


이번 강에서는 변수에 값을 입력하는 법을 배워보았습니다.

이제 여러분들은 원하는 값을 변수에 넣음으로써 다양한 예제 프로그램을 만드실 수 있습니다.

다음 강에서도 도움이 되는 주제로 찾아오겠습니다.

 

오늘도 수고하셨습니다.

 


정리

- 입력 : 변수에 값을 넣는 것

- 입력을 할 때는 scanf 함수를 사용한다.

- scanf 함수에서 변수 이름에 꼭 &를 넣는다.

- 변수의 쓰임에 맞게 이름을 지어줌으로써 가독성을 높일 수 있다.


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.

 

poci5003@gmail.com

 

반응형