본문 바로가기

Programming/C/C++

Turbo C++ 제 3탄, 입·출력 함수에 대해 알아봅시다.

안녕하세요~
이번에는 입·출력 함수에 대해 알아보겠습니다.
입·출력 함수는 딱 보면 무엇인지 대충 짐작 가시죠??
바로 키보드로부터 입력받는 함수와 화면에 출력시키는 함수를 말합니다.
아래 사진을 한번 보도록 하죠.


위에 사진과 같이 소스코드를 보다보면 scanf와 printf가 보이는데요, 이 두개가 바로 입력,출력 함수입니다.
먼저 scanf를 한번 보도록 하죠.
scanf는 키보드로부터 받는 입력값을 쓸 수 있게 해주는 함수입니다.
scanf에는 숫자&문자&특수문자 같은 것을 입력시킬 수 있습니다.
scanf의 형식은 scanf("입력자료의 형태",&변수명); 이런식으로 쓰입니다. [ C언어에서는 ;(세미콜론)이 있어야 마침으로 인식해요ㅎㅎ]
그리고 저 '&' 이것은 엠퍼센드라고 불리는데 이것은 주소연산자라고 불립니다.
만약 주소연산자를 안쓴다면 컴파일 중 에러가 뜹니다. 그 이유는 입력값을 써야되는데 그 입력값을 쓸 주소가 없다고 뜨지 않을겁니다 [아마도..;;]
근데 주소연산자(&)를 쓰지않아도 되는 때가 있는데 바로 위의 사진처럼 문자열을 입력할 때에는 주소연산자(&)를 쓸 필요는 없어집니다.
왜냐하면 저 위에 char v[10]; 이곳에서 이미 주소를 지정해주었기 때문에 scanf 함수에서 또 다시 주소를 지정해줄 필요는 없으므로
주소연산자를 쓸 필요는 없습니다.[물론 써도 되지만, 불필요한것은 안쓰는것이 좋겠죠??]
char v[10]; 에서 char 은 문자데이터를 표현하고자 할때 쓰입니다.그리고 v는 변수명이고, 그옆에 [10] 이것은 문자를 쓸수있는 비트입니다.
만약 [10] 이라고 쓰면 9글자밖에 못 쓰게 되요. 그 이유는 마지막 1비트는 마침표시로 하기위해서 [10] 이것은 총 10비트중 9비트(9글자)만 쓸 수 있지요.
딱 맞춰서 하기가 영 귀찮다면 그냥 [10000] 이런식으로 한번에 많은 비트를 잡아줘도 무방합니다.

그리고 이젠 printf로 넘어가도록 하겠습니다.
printf는 영어단어에서 보다시피 'print'라는 단어가 있습니다. 이 단어는 출력이라는 뜻을 가지고 있지요.
따라서 printf 함수는 출력함수입니다.
printf 함수의 형식은 printf("입력자료의 형태&쓸 내용",변수명); 입니다.
*입력자료의 형태에는 %d,%c,%o,%x,%s 등이 있습니다. 이것들에 대해선 다음시간에 하도록 하겠습니다.*
printf 함수에는 화면에 출력시킬내용을 쓸수도 있는데,
scanf와의 차이점은 바로 scanf는 키보드로부터 입력받는 값이고, printf는 소스코드 작성중에 고정적으로 써주는 내용입니다.
그러니까, scanf는 입력값을 쓰는 중에 틀리면 고칠 수가 있지만, printf는 소스코드에서 수정해줘야된다는 거죠 ..

이번 입출력함수는 여기에서 마치도록 하겠습니다.
더 궁금하신 점은 댓글로 질문해주세요 'ㅁ'..

p.s. 이 글은 안랩 V스쿨 카페(http://cafe.naver.com/vgeneration)와 블로그(http://dudas.tistory.com)에만 게시합니다.