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

 

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

 

[정보 스토리/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언어를 알아가시려는 분들에게는충분히 도움이 될 만한 내용이 되도록 정리를 해보았어요!

 

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

 

 

 

 

 

안녕하세요~

 

오늘은 지난시간 C언어의 가장 기본적인 골격구조에 이어 세부적인 구성요소에 대해 알아보도록 하겠습니다. 

 

1. C 토큰(Tokens)

C토큰은 C언어 내의 가장 작은 단위요소로 정의되며 단어와, 구두점 등으로 이루어져 있습니다. 

 

기본적으로 6가지 유형이 존재하며 그 내용은 다음과 같습니다. 

 

순서대로 키워드, 식별자, 상수, 문자열, 구두점, 연산자 입니다. 

 

일반적으로 C언어 내에서는 공백도 문자로 인식하여 빌드시 예기치 못한 오류를 유발시킬수 있습니다. 

 

하지만 토큰사이의 공백은 허용되어 문장의 가독성을 향상시킬 수 있는 특징을 가지고 있습니다. 

 

2. 키워드(Keywords)

키워드는 하나의 토큰으로 간주되며, C언어 프로그램 내에서 고유의 고정된 의미를 가지고 있습니다.

 

예를들어 if, while, int 와 같은 단어가 있는데 이들은 모두 프로그램내에서 각각 조건문, 반복문, 정수형 상수를 

 

의미하는 키워드로써 작용합니다. 

 

또한 모든 키워드는 소문자로 구성되며 가장 대표적인 예는 다음 표와 같습니다.

 

 

3. 식별자(Identifiers)

식별자는 변수, 함수, 배열 등의 이름을 가리키며, 사용자의 정의로 이루어집니다. 

 

정해진 규칙내에서 사용자의 정의로 설정할수 있으며 그 규칙은 다음과 같습니다. 

 

 

4. 변수(Variables)

변수란 프로그램 실행 중 발생할 수 있는 임의의 값을 저장하기 위한 기억장소를 의미합니다. 

 

변수의 이름은 글자, 숫자, 밑줄 글자(_)로 구성되며,

 

사용자 정의로 설정되기 때문에 앞서 명시한 식별자의 규칙이 적용됩니다.

 

또한 변수의 종류(type)에 따라 데이터가 저장되는 방식과 조작방식이 달라지므로 자료형(type)의 설정이 매우 중요합니다. 

 

위 표의 내용과 같이 취급하고자하는 변수의 자료형이 정수(int), 실수(float, double), 문자(char)에 따라

 

저장 방식에 차이가 있습니다.

 

 

오늘은 여기까지 C언어를 구성하는 최소단위 와 그 규칙들에 대해 알아보았고, 

 

다음에 C언어에서 취급하는 연산자와 그 표현식들에 대해 간략하게 알아보도록 하겠습니다!!

 

 

 

 

안녕하세요! 

 

앞으로 저의 주 전공은 아니지만 제가 배워왔던 내용들을 기반으로

 

C언어를 주제로 소소한 정보들을 포스팅 해볼까 해요.

 

최근까지도 핫한 분야이기도 했고 여전히 핫한 인공지능 AI 분야를 이해하기 위한 기초중의 기초이죠.

 

기계어 즉, 컴퓨터 언어를 전문적으로는 아니더라도 흥미를 가져볼 수 있을 정도까지 다뤄볼까 합니다! 

 

 

1. C언어란 무엇인가?

C언어란, 인간과 컴퓨터 사이의 의사소통을 위한 프로그래밍 언어중 하나라고 이해하면 쉽습니다. 

 

이러한 프로그래밍 언어는 C언어를 포함해 C#, C++, Java 등 많은 종류가 존재하고 있긴하지만 

 

그 중 가장 기본이 되는 언어가 C언어 입니다!  

 

그렇다면 잠시 첨언으로 C언어가 만들어지게된 배경에 대해 알아볼까요?

 

C언어가 만들어진 이유는 간단히 요약하자면 C의 장점이라 할수도 있는 프로그램의 이식성과 

 

구조적 프로그램의 적합성을 위해라고 생각하시면 됩니다. 

 

예를 들어 동일한 소프트 웨어를 서로 다른 운영체제를 가진 컴퓨터에 적용시키게 될 경우,

 

예외없이 동일한 동작이 가능하게 하는일은 매우 중요한 문제인데요. 이러한 이식성의 문제를 해결하고자 

 

C언어가 개발되어진 것입니다. 

 

일전에 ALGOL60, B언어 등의 프로그래밍 언어의 개발이 있었지만, 모두 이러한 프로그램 이식성의 한계를 가지고 있어

 

이를 개선하기 위해 개발된 언어라고 합니다.

 

 

 

2. 컴파일러란 무엇인가?

그렇다면 이렇게 개발된 C언어를 어떻게 사용하고 활용하느냐?

 

C언어는 인간이 알아볼 수 있게 만들어진 언어이고, 실제로 컴퓨터 즉 기계가 읽을 수 있고 받아들일 수 있는 언어는 

 

이진법의 숫자(0,1) 입니다.  

 

따라서 인간이 만든 프로그램을 기계가 이해할 수 있도록 기계어로 변환하는 작업이 필요하게 되는데 

 

이때 사용되는 기능이 '컴파일러'입니다. 쉽게 말해 인간과 컴퓨터 사이의 통역관 역할이라 생각하시면 되겠습니다. 

 

 

 

3. 프로그램 작성방법

C언어를 이용해 프로그램을 작성하고 그 프로그램이 컴퓨터 내에서 작동하기 까지의 과정을 

 

다음의 그림으로 요약해 보았습니다. 

 

 

 

기본적으로 4단계에 걸쳐 프로그램 작성 방법이 이루어지게 되는데요 한단계씩 차례대로 간략히 설명드리면

 

  1. 우선 사용자로 하여금 C언어 기반의 프로그램을 작성하여 .c의 확장자를 가진 소스 파일을 만듭니다. 
    (소스 파일은 컴파일이전의 사용자가 작성한 프로그램 원본을 의미합니다. )

  2. 이후 컴파일러를 통해 프로그래머가 작성한 .c 파일을 컴파일 시키면 obj의 확장자를 가진 오브젝트 파일이 생성됩니다. 이는 이진수 언어로 구성된 기계어 파일이라 생각하시면 됩니다. 

  3. 다음 단계에서는 .obj의 오브젝트 파일을 링커가 가지고가 통합 개발 소프트웨어의 자체적으로 내장되어 있고 제공하는 library(표준함수)와 함께 .exe 확장자를 가진 실행파일을 생성하게 됩니다. 

  4. 마지막으로 실행파일을 실행시키면 로딩과정을 거쳐 프로그래머가 작성한 프로그램을 결과값으로 최종실행 시킵니다. 

 

위와 같은 절차에 따라 프로그램의 작성 및 실행이 이루어지게 됩니다.

 

 

다음에는 이러한 프로그램을 직접 작성하고 실행시킬 수 있는 대표적 통합 개발 소프트웨어인 Visual Studio

 

설치하고 이용하는 방법에 대해 알아보도록 하겠습니다.

 

기대해 주세요~ 

 

+ Recent posts