C 코드

“2주를 빡치면서 버틴 당신을 위하여” 비쥬얼 스튜디오 C코드 예제

coding art 2018. 3. 21. 14:45
728x90



어떤 언어를 배워도 처음에는 인사말을 배운다. 컴퓨터 사이언스 에서도 어느 컴퓨터 언어를 배우든지 첫 번째 예제는 “Hello World!” 이다. 즉 비쥬얼 스튜디오에서 hello.c라는 파일명으로 아래와 같이 C 코드를 작성하자.


hello.c
#include <stdio.h> //표준 입출력 라이브러리 불러오기
void main()  {     // void 는 main() 의 전달하는 파라메타가 없음을 뜻한다
printf(“\nHello World!\n\n\n”) // 콘솔 창(명령 창)에 출력, \n 은 줄 바꿈을 의미
}
\

※ 키보드에서 ‘\’는 ‘’ 로 나타나 있는 경우도 있는데 이 두가지는 같은 기호이다.이 키보드를 누르면 아래한글에서는 ‘\’ fh 출력되나 그림판 소프트웨어에서는 ‘’ 로 출력된다.
줄 바꿈을 뜻하는 \n  외에도 줄의 맨 앞부분으로 커서를 이동시키는 carrige return, \r, 아예 새 페이지로 넘어가는 form feed, \f, Backspace, ‘\b’, 출력 시 겨고음 소리를 내는 ‘\a’ 와 같은 몇 개의 알아두어야 할 제어 문자들이 있다.

hello.c를 실행하면 다음의 콘솔 창을 볼 수 있다. C:\WINDOWS\system32\cmd.exe 는 윈도우의 명령 창에서 hello.c에서 생성된 명령을 실행했다는 의미이다. 즉 컴파일 링킹하여 생성되는 hello.exe 라는 파일을 실행했다는 것이다.




<stdio.h> 라이브러리를 사용하여 인사말을 출력 후 여러 가지 종류의 변수 선언 및 키보드 입출력을 배우도록 한다. 아직까지는 <stdio.h> 라이브러리 한 가지만 사용하도록 한다.
비쥬얼 스튜디오에서 Fahrenheit.c 라는 파일명으로 아래와 같이 C 코드를 작성하자. 미국  사람들이 사용하는 온도 단위인 화씨온도 값을 섭씨온도 값으로 바꾸기 위해서는 다음의 공식을 사용한다.

화씨 온도 체계에서는 32도에 물이 언다. 따라서 화씨온도 값에서 32.0도를 뺀 후 화씨와 섭씨 온도의 스케일 비율인 (5/9)를 곱한다. 두 숫자를 아래와 같이 #define 심볼명 값  형태로 코딩하도록 하자. FZ_PT 와 S_FACTOR는 C 코드에서 변수가 아니고 값이 변하지 않는 일종의 상수에 해당한다.


main() 내부에서 두 개의 변수 즉 섭씨 온도 값 fa 와 ce를 다루도록 한다. 물론 이 두 가지 변수들은 소숫점 계산이 가능한 실수(float)로 선언한다. C 코드뿐만 아니라 대부분의 컴퓨터 언어에서는 변수들이 도입되면 반드시 실수든 정수든 문자든 특성을 사전에 선언해야 한다. 실수에 반대 되는 정수는 integer 의 약어인 int 로 정의 한다. 그밖에 하나의 문자 단위인 character 즉 char 와 여러 개의 문자로 이루어진 문자열 string 이 있음에 유의하자.

콘솔 창에서 출력은 printf() 명령을 사용한다. ()에 넣어야 할 내용은 출력할 문장과 제어 문자이다. 아래의 C 코드가 실행되면 우선 콘솔 창에 “Enter Fahrenheit temperature:” 안내문이 출력된다.

콘솔 창에서 화씨 온도 값을 입력해라(“Enter Fahrenheit temperature:”)라는 위의 메시지를 보게 되면 키보드에서 정수 값 80 이 아닌 실수 값 80.0 을 입력하자. scsnf()는 키보드 입력을 읽어 들이는 명령으로서 읽어야 할 변수 즉 fa는 이미 실수(float)로 선언하였으므로 “%f”로 설정하고 실수형 변수 fa를 읽어 들이는데 fa가 문자열 즉 string이 아니기 때문에 반드시 &fa 로 표기함에 유의하자.


섭씨 온도 ce 값을 환산하여 소숫점 이하 3자리까지의 값을 출력하도록 하자. 이때 출력 형식은 %.3f 로한다. 만약 이 설정을 %f로 처리하면 소숫점 6자리까지의 값을 출력하며, %.0f로 처리하면 정수 부분만 출력되므로 반드시 사용자가 체크해보도록 한다.


Fahrenheit.c 가 환산한 섭씨 온도 값은 26.667 도가 된다.



Fahrenheit.c


#include <stdio.h>
#define FZ_PT 32  // 화씨 온도 체계에서 물이 어는 온도
#define S_FACTOR (5.0/9.0)  // 화씨에서 섭씨로 변환시의 스케일 비

void main() {
float fa, ce; // 2개의 변수 fa 와 ce 실수 선언

printf("\n  Enter Fahrenheit temperature: ");//콘솔 창에 안내문 출력
scanf("%f", &fa);   // 키보드에서 fa의 실수 값 입력
printf("\n"); // 콘솔 창에서의 출력된 라인들 간의 간격을 조절
ce = (fa-FZ_PT)*S_FACTOR; // 입력된 화씨 온도 값의 섭씨 값 환산
printf("  Celsius equivalent : %.3f\n\n", ce );//섭씨 온도 값 콘솔 창 출력
}


이 예제 실습이 완료되었으면 정수형 변수를 사용하도록 이 예제를 변형하여 보자. 바꾸어야 할 부분은  float fa, ce를 int fa, ce 로 선언해야 한다. 아울러 키보드에서 정수형 십진수로 데이터를 읽기 위해서는 scanf()에서 %d 설정이 필요하다. d는 decimal 즉 십진수를 의미한다. 마지막 콘솔 창 출력 printf()에서도 %.3f를 %d 로 설정한다.


위의 코드를 익숙하게 다루게 되었으면 당신은 이미 <stdio.h> 라이브러리 설정, 심볼상수 정의하기, 제어 문자 \n, 콘솔 창 입출력 명령 printf(), scanf(), %f, %.3f, %d, &fa, 곱하기 *, -, 를 익힌 상태이다. 뭐든 처음 단계에서는 되는 것 보단 안 되는 것 투성이 임에도 불구하고 C 코딩에서 옹알이 정도 수준으로 C 언어를 익힌 듯하다.

C 언어는 소위 말하는 사람이 쉽게 알아챌 수 있는 고급 언어는 아닌 듯하다. 오히려 하드웨어 성격의 컴퓨터 구조를 설명하는 수준의 언어이기 때문에 쇳덩어리 냄새가 강하게 나지만 배워두면 컴퓨터 사이언스를 이해해 나가는데 많은 도움이 될 것이다.