본문 바로가기
프로그래밍/C언어

c언어 - 입력받기, 출력하기

by solution online 2023. 6. 29.
728x90
반응형

지난 시간에는 변수와 자료형을 다뤄봤습니다.

 

https://atoughguy.tistory.com/58

 

C언어 - 자료형과 변수

오늘은 자료형과 변수라는 것을 알아보겠습니다. 자료형이란 데이터의 속성을 정해주는 것을 얘기합니다. 컴퓨터는 사람이 아니기에 명령을 내릴 때 상세하고 자세~한 명령을 줘야 합니다. 지

atoughguy.tistory.com

데이터를 저장할 공간이 필요하고, 어떤 데이터인지도 정해줘야 하고

컴퓨터에게 세심하고 꼼꼼한 명령을 줘야 한다!

 

그런데 모든 프로그램이 프로그램 자체적으로 다 정해놓고 출력만 해주는 것은 아니죠!?

 

바로 입력이라는 것도 받습니다.

쉽게는 제가 지금 글 쓰고 있는 것도 입력이고,

어느 사이트의 회원가입을 위해 아이디, 비밀번호를 입력하는 것도 입력이죠.

 

제가 실무에서 입력함수를 쓰는 경우는 없었습니다. 저 같은 경우는 말이죠.

그럼에도 기본 중 하나이기에 이런것이 있구나~ 알아두는 것이 좋습니다 ㅎ

 

오늘의 주제 입력하기, 출력하기 입니다.

그동안 출력하기는 몇 번 보여드렸습니다.

그러니 일단 입력하기를 해보죠.

 

C언어의 대표적 입력받는 함수는 scanf() 입니다.

사용법은 scanf("자료형", &변수); 요렇게 쓰입니다.

쉽죠?

위에는 결과고요. 내가 입력한 것이 그대로 출력됩니다.

반응형

여러개를 입력받고 싶으면 scanf("%d %d %d %d", &val1, &val2, &val3, &val4);

이렇게 하면 돼요.

 

그런데 한가지 다른점이 있죠??

변수명 앞에 "&"이 있네요!? 왜 그럴까요?

미리 말씀드리면 변수의 주소를 넣게끔 되어 있습니다.

변수의 주소? 변수는 데이터를 저장할 공간이라고 말씀드렸고, 그 공간은 메모리의 공간이고, 메모리의 공간은 주소로 접근할 수 있습니다.

 

scanf 입력받을 땐 그 메모리 공간 주소로 접근할 수 있게끔 하기로 약속되어 있습니다.

c언어를 쓰고, linux를 한다면 많이 접하게 되는 것이 있습니다.

 

바로 man 페이지인데요.

ubuntu에서 "man scanf" 라고 쳐보실래요?

그러면 영어로 된 무언가가 나옵니다.

linux에서 개발하신다면 친숙해 지실 것 입니다 ㅎㅎ

함수에 대한 설명이 쭉 나오죠. 친절하게도 상단 중앙에 프로그래머를 위한 메뉴얼이랍니다. ㅎㅎ

 

scanf는 키보드 입력만 받지만 man 페이지 설명처럼 파일 입력(fscanf)도 있고요.

나름 다양하게 있습니다. 사용법은 함수안에 무엇을 설정해 주느냐의 차이지만 전반적인 사용법은 거의 동일하기에 초반에는 scanf로 배웁니다.

 

자 다음은 출력하기!

계속된 연습에서 printf가 쓰였죠?

알게된 김에 man 페이지로 printf도 봐볼까요?

printf 에 대한 설명이 나와있... 

아.. 잘못 들어왔네요 ㅎㅎㅎ 상단 중앙에 프로그래머의 메뉴얼이라고 안되어 있죠?

그러면 linux에서의 명령이에요 ㅎㅎㅎ

CLI에서 man 3 printf 라고 쳐볼까요!?

아, 이제 나왔네요 ㅎㅎ (시원)

같은 설명 페이지가 존재할 경우 숫자로 구분을 둡니다.

그런데 순서대로 있는 것이 아니라 찾아봐야 하는데요.

 

man -k printf

라고 쳐보시면 다양한 것이 나오죠?

print(1)이 처음 뜬거였으니까 남은건 3번 하나죠? 그럼 일단 3번 ㄱㄱ

 

그렇게 볼 수 있습니다 ㅎㅎ

 

자, 다시 돌아와서

출력을 해줄 때에도 어떤 데이터인지 컴퓨터에게 알려줘야 합니다.

그래서 데이터마다 그에 맞는 출력 포맷(%d, %c, %f 등)을 알려줘야 하죠.

지금까지 썼던 것이 그런 예제 입니다 ㅎㅎ

입력도 마찬가지고요.

참 쉽죠잉!? ㅎㅎ;;;

 

데이터를 쓰면 오버플로우란 것도 있고,

scanf, printf로 여러 장난도 쳐볼 수 있지만... (쓰다가 지웁니다 매번...)

 

이 글의 목적은 쓰윽 훝어보는 개념으로 쓰는 것이니 그 본분에 맞게 쓰겠습니다 ㅎ

 

printf, scanf 가 대표적인 출력, 입력 함수이고요. 입문 단계에서 단골로 나오는 함수 입니다.

앞서 설명드렸지만 scanf나 printf는 실무에서 잘 사용하지 않습니다.

물론 디버깅이라는 버그 찾는 것에 printf는 없어서는 안될 함수지만 이 printf 함수도 임베디드 환경에 따라 금지하거나 별도로 만드는 경우도 허다합니다.

왜? 프로그램에 영향을 주거든요 ㅎㅎ

 

여튼! 별것 아니것 같아도 꼭 코드 직접 써보시고, 직접 이것저것 바꿔보시면서 에러 메시지도 만나보시고 없애보시고 하시길 바랍니다!

728x90
반응형

'프로그래밍 > C언어' 카테고리의 다른 글

c언어 - 조건문(if, else if, else, switch case)  (0) 2023.07.26
c언어 - 연산자  (0) 2023.07.01
C언어 - 자료형과 변수  (36) 2023.06.26
C언어 시작  (0) 2023.06.25
C언어 개발환경  (0) 2023.06.24