안녕하세요~ 공돌이 입니다!

 

지난번 포스팅에서 다양한 연산자와 그 표현식을 다뤄 보았는데요 

 

[정보 스토리/C언어 프로그래밍] - [C언어 겉핥기] 연산자와 표현식

 

오늘은 C 언어의 핵심이라 할 수 있는 입,출력 함수들에 대해 알아보려 합니다.

 

입출력이라 하면 말 그대로 입출력 도구 즉, 컴퓨터의 입력 도구인 키보드와 출력 도구인 모니터를 이용해

 

원하는 출력을 위한 입력, 입력된 결과의 출력을 가능하게 하는 행위를 뜻합니다. 

 

사설이 길었죠,,? ㅎㅎ 자세한 설명을 드리자면 다음과 같습니다.

 

한 글자씩 읽기 (Reading a character)

 C 언어 내에서 한 글자씩 읽어내는 작업은 getchar 함수를 이용합니다. 

 

사용법은 다음과 같이 

 

Variable_name = getchar();

 

사용되고 변수 이름은 char형의 유효한 변수 명으로 사용되어야 합니다. 

 

위와 같은 예시가 실행되었을때, 실행창에서 문자 'Y'가 눌린다면 

 

이는 문자 'Y'를 변수 이름 name에 할당시키는 역할을 합니다.

 

아래에서 실습 예를 들어보도록 하겠습니다. 

 

실습 예시에서는 char형의 변수 이름을 answer로 설정하였고,

 

getchar 함수를 선언하여 'Y' 혹은 'y'가 눌렸을때 1번 문장이 출력되고, 

 

'Y'가 아닌 다른 문자가 눌렸을때 2번 문장이 출력되는 프로그램 입니다. 

 

출력 화면을 보시겠습니다. 

 

 

실습 예시의 프로그램을 실행시키게 되면  위와 같은 실행창이 뜨게 되고

 

이때 문자 'Y'를 누르면 

 

앞서 프로그램에 작성한대로 1번 문장이 출력되는걸 보실 수 있습니다. 

 

실행창에서 Y가 아닌 다른 문자('n')가 눌린다면,

 

위와 같이 프로그램상의 2번 문장이 출력되는것 역시 보실 수 있습니다. 

 

한 글자씩 쓰기 (Writing a character)

다음은 getchar 함수와 유사하게 한 글자씩 출력장치를 통해 글자를 쓸 수 있는 putchar 함수입니다. 

 

사용법은 다음과 같이 

 

Putchar(variable_name);

 

사용되고 getchar 함수와 동일하게 char 형의 변수 이름을 사용합니다. 

 

위와 같은 예시를 실행하면 실행창에 문자 'A'가 출력 될 것입니다. 

 

마찬가지로 실습 예제를 통해 알아보겠습니다. 

 

다음 실습 예제를 실행하면 

 

알파벳을 입력하라는 문구가 출력되게 되고, 알파벳을 입력하면 

 

getchar 함수에 의해 입력받은 알파벳을 alphabet이라는 변수에 할당시킵니다. 

 

이후 입력된 알파벳의 대소문자를 판별 (islower)하여 입력된 문자가 소문자면 대문자로, 

 

입력된 문자가 대문자면 소문자로 출력(toupper, tolower) 해주는 프로그램입니다. 

 

 

다음과 같이 출력되는 결과를 보실 수 있습니다. 

 

서식화된 입력 (Formatted Input)

서식화된 입력이란, 입력 데이터 들이 특정 형태로 정리되어 있는것을 의미합니다.

 

예를들어  175.7  // 95  // ABC 의 데이터가 존재할때 

 

첫번째 데이터는 float 형태, 두번째 데이터는 int 형태, 세번째 데이터는 char 형태로 읽어야 합니다. 

 

이는 C언어에서 scanf 함수를 통해 가능합니다. 

 

scanf 함수는 키보드로 데이터를 입력하는 함수로 

 

위와 같은 사용 형태를 가집니다. 

 

Control_String : 키보드를 통해 입력될 입력 데이터 들이 가질 형태

&arg1, ... : 각각 입력된 데이터 들이 저장될 주소를 의미 

 

예를 들어 

 

scanf("%d",&a);

 

와 같이 사용될 수 있으며, 이는 다음과 같은 의미를 가집니다.

 

1) 키보드로부터 데이터를 입력서식문자 %d(10진수 정수)형식으로 입력받는다.

2) 입력받은 데이터를 변수 a(주소)에 저장한다. 

 

또한 입력 서식문자는 다음과 같은 종류들이 존재합니다. 

 

 

서식화된 출력 (Formatted Output)

printf 함수는 모니터에 데이터를 출력해주는 함수로, 출력될 때의 정렬방법 및 배치방법 등을

 

효과적으로 제어할 수 있게 도와주는 많은 기능들을 제공합니다. 

 

표현식은 다음과 같습니다. 

 

이때 Control_String은 다음 의 세가지 요소로 구성됩니다. 

 

1) 모니터에 그대로 출력 될 문자 

2) 출력요소의 출력 형태를 지정하기위한 서식 지정자 

3) \n, \t, \b와 같은 특수문자

 

예를 들어 

 

printf("%d",2+3);

 

와 같이 사용되며 다음과 같은 의미를 가집니다. 

 

'2+3의 결과를 출력 서식문자 %d(10진 정수)로 출력'

 

또한 scanf함수와 마찬가지로 다음과 같은 서식문자 종류를 가집니다. 

 

 

마지막으로 특수문자 '\n'의 사용유무에 따른 출력결과 차이를 보시겠습니다. 

 

위와 같이 특수문자 '\n' 은 출력 문자의 행을 다음 행으로 바꿔주는 역할을 가지는 것을 보실 수 있습니다. 

 

 

이상으로 오늘은 C언어의 입출력 함수에 대해 알아보았는데요, 

 

할말은 많고 두서는 없고... ㅎㅎㅎ 잘 전달이 되었으려나 모르겠어요ㅜ 

 

주제에 맞게 겉핥기다 보니 전문적으로 C언어를 다루시는 분들에겐 부족한 내용일지 모르겠으나

 

가볍게 C언어를 알아가시려는 분들에게는충분히 도움이 될 만한 내용이 되도록 정리를 해보았어요!

 

다음시간에는 더욱 알찬 내용으로 찾아뵙겠습니다~ 감사합니다^^

 

+ Recent posts